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 同期リクエストメソッド:
コードをコピー
コードは次のとおりです:
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) が実行されます。