ホームページ  >  記事  >  ウェブフロントエンド  >  ajax同期リクエストと非同期リクエストの違い分析_javascriptスキル

ajax同期リクエストと非同期リクエストの違い分析_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:05:151499ブラウズ

Ajax 同期と非同期の違いについて、最初に 2 つのコードを見てみましょう:
コード 1:

コードをコピーしますコードは次のとおりです。

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) {
http = new ActiveXObject(activeX[i])
} catch (e) {}
} finally {
return http;
}
}
var conn = createXhrObject();
conn.open("POST", url, false);//ajax 同期
conn .send(param);
var strReturn = conn.responseText;
if (strReturn != "") {
return Ext.decode(conn.responseText) ;
} else {
return
}
alert("2")
コード 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) {}
}
} 最後に {
return
}
}
var conn = createXhrObject();
conn.open( "POST", url, true);//ajax 非同期
conn.send(param); var strReturn = conn.responseText(" 1");
if (strReturn ! = "") {
return Ext.decode(conn.responseText);
} else {
return null;
}
alert( "2");
};


同期と非同期の違いは次のとおりです。

conn.open('POST',Url,true); ajax asynchronous
conn.open('POST',Url ,false); // ajax synchronization

コード 2 の場合、実行結果は次のようになります。まず、alert(2) を実行します。非同期とは、conn.open リクエストが送信されるとすぐに、フロントエンドが応答を待たずに次のコードを実行することを意味します。そのため、alert(2) が最初に実行され、その後、alert(1) が実行されます。 ) は、応答が到着したときに実行されます。

コード 1 の場合、同期 Ajax リクエストの実行結果は次のとおりです。まず、alert(1) を実行し、次に、alert(2) を実行します。 open リクエストが発行されると、フロントエンドはその応答を待ちます。応答が完了すると、alert(1) が最初に実行され、次にalert(2) が実行されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。