假设页面是这样的
<div id="divId">x</div>
<script type="text/javascript">
document.getElementById("divId").onclick = function() {
alert("divs");
}
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
</script>
假设刚加载完document.getElementById("divId").onclick = function() {
alert("divs");
}
这句,我就点击了divId,那么肯定会弹出divs,问题是弹出divs后,后面的alert(1)还执行吗?它是在弹出divs的同时再去执行后面的语句还是弹出divs后就暂停执行后面的语句了,直到弹出divs后再执行后面的语句还是弹出divs后点击了alert对话框的确定后再执行后面的alert语句?
我的意思是当有一个事件发生时后面的程序还会和事件同时执行吗?
js是单线程还是多线程,以及什么是单线程执行,什么是多线程执行?
请高手赐教,谢谢!
<div id="divId">x</div>
<script type="text/javascript">
document.getElementById("divId").onclick = function() {
alert("divs");
}
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
alert(1);
</script>
假设刚加载完document.getElementById("divId").onclick = function() {
alert("divs");
}
这句,我就点击了divId,那么肯定会弹出divs,问题是弹出divs后,后面的alert(1)还执行吗?它是在弹出divs的同时再去执行后面的语句还是弹出divs后就暂停执行后面的语句了,直到弹出divs后再执行后面的语句还是弹出divs后点击了alert对话框的确定后再执行后面的alert语句?
我的意思是当有一个事件发生时后面的程序还会和事件同时执行吗?
js是单线程还是多线程,以及什么是单线程执行,什么是多线程执行?
请高手赐教,谢谢!
其他的你上网就能找到大把
1、JS是描述性语言,是依靠宿主(网页中的脚本宿主就是浏览器内核)进行动态解析执行的;
2、页面加载时执行顺序:
1)加载引用的JS文件
2)扫描引用文件和当前文件中的代码块:就是<script></script>之间的代码。3、代码解析:
1)当发现代码块中的函数时,如果是定义性的函数就先预处理(不准确的说,类似预编译)一下;遇到赋值式的函数时,就先将函数赋值给变量,并不预处理,等执行的时候才处理。
2) 变量定义赋值
3)执行指定的各类函数
4)响应页面控件的各种事件
var xmldom = createDocument();
xmldom.async = true;xmldom.onreadystatechange = function() {
if (xmldom.readyState == 4) {
if (xmldom.parseError != 0) {
alert("An error occurred:\nError Code: "
+ xmldom.parseError.errorCode + "\n"
+ "Line: " + xmlcom.parseError.line + "\n"
+ "Line Pos: " + xmldom.parseError.linepos + "\n"
+ "Reason: " + xmldom.parseError.reason); } else {
alert(xmldom.documentElement.tagName); //"root"
alert(xmldom.documentElement.firstChild.tagName); //"child"
var anotherChild = xmldom.createElement("child");
xmldom.documentElement.appendChild(antherChild); var children = xmldom.getElementsByTagName("child");
alert(chilren.length); //2
alert(xmldom.xml);
}
}
};
xmldom.load("example.xml");
这个是异步加载的,也就是不等xmldom.load("example.xml");执行完,就会执行后面的代码,我不明白的是,当xmldom.load("example.xml")加载完成时,即xmldom.readyState == 4时,就会执行xmldom.onreadystatechange = function() {
........
}
里面的代码,但是在执行xmldom.onreadystatechange = function() {
........
}
里面的代码的同时程序执行后面的代码吗?
异步加载指的的是执行xmldom.load()后会去执行其他任务。但当得到返回消息readyState ==4后,就开始回到onreadystatechange方法的回调函数里处理内部代码。这些你可以参考我4楼给你的链接