1. 程式人生 > >JQ Ajax 同步與異步的區別

JQ Ajax 同步與異步的區別

get 發送 ldr 假死 sync 發出 timeout 執行 結果

$.ajax({  
	        url: xml_addr,  
	        type: ‘get‘,  
	        dataType: ‘xml‘,  
	        timeout: 1000,  //設定超時  
	        cache: false,   //禁用緩存  
	        async:false,//同步(保證配置取出再執行其他的代碼)
	        error: function(xml) {  
	        	console.log("讀取xml出錯");
	        },  
	        success:function(xml)
	        {
	        	$(xml).find("server").each(function(i) {     //查找所有student節點並遍歷  
	                var index = $(this).children("index");          //獲得子節點  
	                var child = $(this).children("child");  //獲取節點的屬性  
	                server_josn={"index":index.text(),"child":child.text()};
	            });  
	        }//設置成功後回調函數  

  

jquery中ajax方法有個屬性async用於控制同步和異步,默認是true,即ajax請求默認是異步請求,有時項目中會用到AJAX同步。這個同步的意思是當JS代碼加載到當前AJAX的時候會把頁面裏所有的代碼停止加載,頁面出現假死狀態,當這個AJAX執行完畢後才會繼續運行其他代碼頁面假死狀態解除。而異步則這個AJAX代碼運行中的時候其他代碼一樣可以運行。

ajax中async這個屬性,用於控制請求數據的方式,默認是true,即默認以異步的方式請求數據。

一、async值為true (異步)

當ajax發送請求後,在等待server端返回的這個過程中,前臺會繼續 執行ajax塊後面的腳本,直到server端返回正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求後一個線程 和ajax塊後面的腳本(另一個線程)

二、async值為false (同步)

當執行當前AJAX的時候會停止執行後面的JS代碼,直到AJAX執行完畢後時,才能繼續執行後面的JS代碼

JQ Ajax 同步與異步的區別