本文實例分析了Ajax請求中async:false/true的作用。分享給大家供大家參考,具體如下:
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後才賦值的,結果,輸出時會為空。
更多關於ajax相關內容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結》、《JavaScript中ajax操作技巧總結》、《PHP+ajax技巧與應用小結》和《asp.net ajax技巧總結專題》
希望本文所述對大家ajax程序設計有所幫助。