ajax的方法是非同步的,有時候會出現ajax還沒返回資料就執行其他函式的情況,這樣會出現很多莫名奇妙的問題,以下舉出兩個例子,乙個是錯誤的,乙個是正確的。
第乙個是錯誤的:
code =』』;$.post(checkurl, function(data));
alert(code);
第二個是正確的:
//-----------------------------ajax非同步驗證!!!!!!!!!!!!!!!!---------------------------(核心)
code =『』;
function yibu()//
ajax是非同步的,非同步這個概念要好好理解,ajax相對於其他執行來說是非同步的,也就是說不會按照一般的從檔案開頭順序執行到結尾的,會另外開多乙個程序,故會有----延遲---!
$.post(checkurl, function(data));//
非同步執行
錯誤原因的分析:
例子中的錯誤主要是沒有理解到ajax的非同步概念,以為還是會按照程式的結構一步一步的執行下來。
其實,真正的執行順序並不是這樣的,真正的執行順序是當執行到$.post()函式時會向後台傳送請求,傳送完畢後立刻執行下面的alert(code)函式,並不會等待後台的資料到來後才去執行。而例子二是要等待後台資料返回才會去執行alert(code)函式的。所以第乙個例子彈出的警告框是空的,第二個例子彈出的警告框是返回的後台資料。
因此,以後要特別注意ajax的非同步性!
Ajax非同步技術的實現
1 建立非同步呼叫物件 建立物件是與瀏覽器型別及瀏覽器的版本有關 2 載入非同步資料所在的伺服器 xmlhttp.open post true 3 非同步呼叫伺服器狀態的變化 xmlhttp.readystate與伺服器的五種互動狀態 請求狀態 0 未初始化 非同步物件建立完畢,未使用open方法 ...
Ajax 的技術優勢
ajax所帶來的優勢 1.由於可以在頁面內與伺服器通訊,不必整體重新整理頁面,減少了資料傳輸量,提高了web應用的響應速度,給使用者帶來全新的感受。2.由於可以在頁面內與伺服器通訊,使得構建智慧型化的客戶端控制項成為可能。例如 資料 樹型控制項等各種複雜的控制項。3.智慧型化的客戶端控制項可以通過x...
Ajax技術的核心XMLHttpRequest物件
以下簡稱 xhr 為伺服器傳送請求和解析伺服器響應提供了流暢的介面。能夠以非同步的方式從伺服器獲得更多資訊,意味著使用者單擊後不用重新整理頁面也可以取得新資料。也就是說,ajax技術中使用xhr物件取得新資料,再通過dom將新資料插入頁面中。xhr.open 要傳送的請求型別 請求的url 是否非同...