最近在開發項目中遇到一個問題,使用多個jQuery中的$.ajax()
方法對功能過程進行判斷與驗證的時候,執行順序並不是按照自己所想要的執行,導致驗證出現了一定的問題,查詢資料以後找到了問題的根源,原來ajax是異步傳輸,在對執行順序嚴格要求是必須將異步改爲同步,即在$.ajax()
方法參數加上async:false。async要求爲Boolean類型的參數,默認設置爲true,所有請求均爲異步請求。 如果需要發送同步請求,請將此選項設置爲false。注意,同步請求將鎖住瀏覽器,用戶其他操作必須等 待請求完成纔可以執行。
下面詳細說明ajax的其他參數:
1.url: 要求爲String類型的參數,(默認爲當前頁地址)發送請求的地址。
2.type: 要求爲String類型的參數,請求方式(post或get)默認爲get。注意其他http請求方法,例如put和delete也可以使用,但僅部分瀏覽器支持。
3.timeout: 要求爲Number類型的參數,設置請求超時時間(毫秒)。此設置將覆蓋$.ajaxSetup()方法的全局設置。
4.async:要求爲Boolean類型的參數,默認設置爲true,所有請求均爲異步請求。 如果需要發送同步請求,請將此選項設置爲false。注意,同步請求將鎖住瀏覽器,用戶其他操作必須等 待請求完成纔可以執行。
5.cache:要求爲Boolean類型的參數,默認爲true(當dataType爲script時,默認爲false)。設置爲false將不會從瀏覽器緩存中加載請求信息。
6.data: 要求爲Object或String類型的參數,發送到服務器的數據。如果已經不是字符串,將自動轉換爲字符串格式。get請求中將附加在url後。防止這種自動轉換,可以查看processData選項。對象必須爲key/value格式,例如{foo1:”bar1”,foo2:”bar2”}轉換爲&foo1=bar1&foo2=bar2。如果是數組,JQuery將自動爲不同值對應同一個名稱。例如{foo:[“bar1”,”bar2”]}轉換爲&foo=bar1&foo=bar2。
7.dataType: 要求爲String類型的參數,預期服務器返回的數據類型。如果不指定,JQuery將自動根據http包mime信息返回responseXML或responseText,並作爲回調函數參數傳遞。
8.text:返回純文本字符串。