请高手解析一下javascript同步与异步区别
一直以为javascript中的同步与异步的的区别是这样的:
同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码
异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情。
今天在有IE的XML DOM对象时有如下代码:
var xmlobject;
function fillCellDate(){
var arrSignatures = ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
"Microsoft.XmlDom"];
for(var i=0;i<arrSignatures.length;i++){
try{
xmlobject =new ActiveXObject(arrSignatures[i]);
}catch(e){
}
}
xmlobject.onreadystatechange=verify;
xmlobject.load("abc.xml");
alert("asynchronized!!!");
}
function verify(){
if(xmlobject.readyState==4){
alert("call back function");
}
}
按照自己的预期,由于是采用的异步方式,所以alert("asynchronized")会先出现,但是不管怎么测试该弹出框均是在最后出的,这和同步有什么区别呢,都是上面的代码执行完之后再执行alert("asynchronized"),恳请高手指点,谢谢!