閱讀772 返回首頁    go 阿裏雲 go 技術社區[雲棲]


解決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

  上一篇:go JAVA架構師葵花寶典
  下一篇:go 查找本地進程的jmx url的代碼