ajax非同步問題

2021-08-01 22:58:51 字數 1394 閱讀 1084

aspx頁面:  

高拍儀品牌:

繫結二級下拉框

給第二個下拉框賦值:

function load_info(data)

解決方案:ajax加async:false,  就可以了 。。

查閱資料:

最近做東西用到ajax,我在火狐下firebug打斷點一點問題都沒有,可是關了firebug,程式不進後台方法,納悶了好久,從來沒有遇到過這種情況,最後加了乙個引數async:false好了,還是

很納悶,以前寫了那麼多ajax相關**從來沒遇到過這種情況,原來對asy:nc:false的含義不大了解,還有可能和現在這個平台有關係吧。

async boolean default: true

by default, all requests are sentasynchronous (e.g. this is set to true by default). if you need synchronousrequests, set this option to false. note that synchronous

requests may temporarily lock the browser,disabling any actions while the request is active.

async. 預設是true,即為非同步方式,$.ajax執行後,會繼續執行ajax後面的指令碼,直到伺服器端返回資料後,觸發$.ajax裡的success方法,這時候執行的是兩個執行緒。若要將其設定為false

,則所有的請求均為同步請求,在沒有返回值之前,同步請求將鎖住瀏覽器,使用者其它操作必須等待請求完成才可以執行。

下面檢視乙個示例:

var temp;

$.ajax(

});alert(temp);

這個ajax請求為同步請求,在沒有返回值之前,alert(temp)是不會執行的。

如果async設定為:true,則不會等待ajax請求返回的結果,會直接執行ajax後面的語句。

不過上面設定同步請求的方法,有網友曾經反饋將async設成false後, 原意是想返回資料了再執行$.ajax後面的指令碼, 沒想到這個地方卻導致了在火狐瀏覽器下出現閃屏(firefox 11.0),滾

動條下拉到底部觸發ajax的情況。最後只能將async:false注釋掉,也就是async為ture的情況下,成功解決了火狐瀏覽器滾動條下拉到底部觸發ajax出現閃屏的問題。

總結:

async:false:表示同步載入資料

async:true:表示非同步載入資料

同步的意思:

是當js**載入到當前ajax的時候會把頁面裡所有的**停止載入,頁面出去假死狀態,當這個ajax執行完畢後才會繼續執行其他**頁面假死狀態解除。

非同步:則這個ajax**執行中的時候其他**一樣可以執行。

Promise解決AJAX非同步問題

目的 使多個ajax程序能有序的執行,而不是非同步同時執行 第一步 給第乙個ajax所在的函式 ajax1 傳遞乙個success引數 函式 當ajax執行完之後,呼叫success 函式。第二步 如果後面還有要順序執行的非同步程式,可以參照第一步。第三步 new promise ajax1 the...

關於ajax的非同步同步問題

關於ajax的非同步同步問題 之前一直對於ajax同步和非同步不是很理解,直到在實踐中遇到問題才明白這是怎麼一回事。那麼就根據這個實際的問題來說說自己對ajax非同步與同步的理解。問題的起因是這樣的,在做乙個專案當中有這樣乙個需求 上的一些鏈結有內外網顯示許可權,有些鏈結當用內網訪問時可以點開檢視,...

ajax非同步互動

四部曲 一 建立非同步物件 二 開啟與伺服器的連線 僅僅開啟連線,並沒有傳送請求 xmlhttp.open 用來開啟與伺服器的連線,需要三個引數 請求引數 get post 請求的url 指定伺服器端的資源,例如 homework index.jsp 請求是否為非同步 如果true,傳送非同步請求 ...