透過ajax傳送和接收資料到後台時,常常會出現同步非同步問題。這篇文章跟大家介紹Ajax同步和非同步問題淺析,需要的朋友參考下
透過ajax傳送和接收資料到後台時,常常會出現同步非同步問題。由於ajax是預設非同步載入的,但有時候需要同步或同步的效果,有以下兩種解決方案。
方案一:將某些方法放在回呼函數中執行,即,等到從背景返回成功後再執行。
範例:
$.getJSON("/data-access/sens-config/IPandPortSel",{},function(resp){ if(resp.code==0){ $.each(resp.data,function(i,obj){ option_net_type += addOption(obj); }); $("#edit-addr_id").append(option_net_type); addr_idOld = $('#edit-addr_id').val(addr_id); } });
紅色的部分必須在資料回傳成功後執行,如果放在if(resp.code==0){}外面((但放在$.getJSON();後面)會存在資料還沒從後台返回,就已經執行到紅色部分程式碼了。
#
$.ajax({ type : "post", url : "/data-access/manufacturer/deleteBranch", data : data, async : false,//取消异步 success : function(resp){ if(resp.code==0){ if(ids.length>=currentListNum&¤tPage!=1){ currentPage = currentPage - 1; } var para = { mypara :currentPage, startPage : currentPage, }; $('p.page-box').data('myPage').setOptions({data: para}); } } });注意:這種方式只是局部的同步傳輸方式,不會對其他傳輸造成影響,是比較安全和推薦的一種
方式。推薦使用,因為會對其他ajax傳輸造成影響。 ##詳解讀IE6中的position:fixed問題
詳解讀CSS樣式中的!important、*、_符號padding製作圖片自適應佈局(CSS百分比)#
以上是Ajax同步與非同步問題淺析及解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!