在jQuery Ajax里面有一個async 參數 , 默認值 為true , 請求為異步請求 , false 為同步請求 ..
使用ajax加載數據返回頁面並賦值,然后前端取出該值
這其中涉及到代碼的順序問題,有時后台還未返回數據 (好比某個同學些的代碼很爛,執行時間十幾秒),但已執行后面代碼,
所以就會造成取不到值 , 這個就是異步請求, 他不管你有沒有返回,都繼續執行下去...
如果AJAX未返回值,則會一直在等待返回值才執行下面的代碼,這叫同步請求 , 缺點是瀏覽器會卡住...
如果不想用同步請求,解決辦法是設置AJAX 的 timeout 超時時間,然后再重復請求
用代碼理解下異步請求
alert("setp 1"); $.ajax({ url: "admin.php", async: true, success: function(data){ alert("異步請求"); // 1 } }); alert("setp 2"); //2
首先執行 selp 1 然后執行AJAX URL請求....中->未返回值,他不會一直等待下去 ,會執行 selp 2
用代碼理解下同步求情
alert("setp 1"); $.ajax({ url: "admin.php", async: true, success: function(data){ alert("同步求情"); // 1 } }); alert("setp 2"); //2
首先執行 selp 1 然后執行AJAX 請求....中->未返回值 , 則會一直等待....瀏覽器卡住了,,, 直到返回值才會執行 selp 2 .