之前不知道這個參數的作用,上網找了前輩的博客,在此收錄到自己的博客,希望能幫到更多的朋友: test.htmlasy.jsfunction testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', compl...
之前不知道這個參數的作用,上網找了前輩的博客,在此收錄到自己的博客,希望能幫到更多的朋友:
test.html
<a href="javascript:void(0)" onmouseover="testAsync()">
asy.js
function testAsync{
var temp;$.ajax({
async: false,
type : "GET",
url : 'tet.php',
complete: function(msg){
alert('complete');
},
success : function(data) {
alert('success');
temp=data;
}
});
alert(temp+' end');
}
tet.php
<?php
echo "here is html code";
sleep(5);
?>
async: false,(預設是true);
如上:false為同步,這個 testAsync()方法中的Ajax請求將整個瀏覽器鎖死,
只有tet.php執行結束後,才可以執行其它操作。
當async: true 時,ajax請求是非同步的。但是其中有個問題:testAsync()中的ajax請求和其後面的操作是非同步執行的,那麼當tet.php還未執行完,就可能已經執行了 ajax請求後面的操作,
如: alert(temp+' end');
然而,temp這個數據是在ajax請求success後才賦值的,結果,輸出時會為空。