解決Ajax全局變量賦值的問題
在做項目的過程中,以下代碼:在1處a為0。然後通過一個ajax請求一個值為1的data賦予a,在2處a為1。然後來到3這裏的時候,a還是為0。通過查找網絡,得出原因是ajax默認的是異步傳輸數據,在2處的a的scope隻在ajax方法內部。
//1 var a = 0; $.ajaxSetup({ async : false }); $.get("a.action", function(data) { //2 a = data; alert(a); }); //3 alert(a);
為了解決上麵所遇到的問題,我們把ajax異步傳輸改為同步。
在與ajax方法之前同一個作用域的位置,設置為同步傳輸。
//設置為同步傳輸 $.ajaxSetup({ async: false }); //1 var a = 0; $.ajaxSetup({ async : false }); $.get("a.action", function(data) { //2 a = data; alert(a); }); //3 alert(a);
最好不要把同步傳輸的設置放在全局範圍內,否則設置之後的ajax請求都為同步的了。
最後更新:2017-04-03 18:52:08