DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> ajax 同步請求和異步請求的差異分析
ajax 同步請求和異步請求的差異分析
編輯:關於JavaScript     
ajax同步和異步的差異, 先看2段代碼:
代碼一:
復制代碼 代碼如下:
Synchronize = function(url,param) {
function createXhrObject() {
var http;
var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
try {
http = new XMLHttpRequest;
} catch (e) {
for (var i = 0; i < activeX.length; ++i) {
try {
http = new ActiveXObject(activeX[i]);
break;
} catch (e) {}
}
} finally {
return http;
}
}
var conn = createXhrObject();
conn.open("POST", url, false);//ajax同步
conn.send(param);
var strReturn = conn.responseText;
alert("1");
if (strReturn != "") {
return Ext.decode(conn.responseText);
} else {
return null;
}
alert("2");
};

代碼二:
Ajax 同步請求方式:
復制代碼 代碼如下:
Synchronize = function(url,param) {
function createXhrObject() {
var http;
var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
try {
http = new XMLHttpRequest;
} catch (e) {
for (var i = 0; i < activeX.length; ++i) {
try {
http = new ActiveXObject(activeX[i]);
break;
} catch (e) {}
}
} finally {
return http;
}
}
var conn = createXhrObject();
conn.open("POST", url, true);//ajax異步
conn.send(param);
var strReturn = conn.responseText;
alert("1");
if (strReturn != "") {
return Ext.decode(conn.responseText);
} else {
return null;
}
alert("2");
};

同步和異步的差異如下:

conn.open('POST',Url,true); // ajax異步
conn.open('POST',Url,false); // ajax同步

對於代碼二,為異步的ajax請求,執行結果為:先執行alert(2)再執行alert(1), 異步的意思就是說一旦conn.open請求一發出,前端不去等待它的響應便執行後面的代碼,所以alert(2)先執行了,然後當響應response到達以後才執行alert(1);

對於代碼一,為同步的ajax請求,執行結果為:先執行alert(1)再執行alert(2), 同步的意思就是說一旦conn.open請求一發出,前端就去等待它的響應,響應完成以後,alert(1)先執行了,然後alert(2);
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved