天天看點

ajax異步重新整理請求資料

AJAX是與伺服器交換資料的藝術,它在不重載全部頁面的情況下,實作了對部分網頁的更新。AJAX = 異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。簡短地說,在不重載整個網頁的情況下,AJAX 通過背景加載資料,并在網頁上進行顯示。

原生的ajax是比較難寫的,對底層原理要求相對較高,而jQuery經過封裝,将ajax封裝了,使用起來就比較簡單了,有三種方式:<code>$.get(),$.post(),$.ajax()</code>。

文法格式:<code>$.get(URL,callback); //url為要請求的位址,callback為回調函數</code>

文法格式:<code>$.post(URL,data,callback); //url為要請求的位址 data是key-value形式的參數 callback為回調函數</code>

ajax()方法通過HTTP請求加載遠端資料。該方法是jQuery底層AJAX實作。<code>$.ajax()</code>傳回其建立的XMLHttpRequest對象。大多數情況下無需直接操作該函數,除非你需要操作不常用的選項,以獲得更多的靈活性。最簡單的情況下,<code>$.ajax()</code>可以不帶任何參數直接使用。例如:<code>$.ajax({//這裡面進行一些操作});</code>

<code>$.ajax()</code>方法也可以設定一些選項進行一些操作限制,例如設定type請求類型,asnyc是否異步通路等等。

例如一個頁面點選select下拉框時觸發的一個請求,下拉框的值由背景傳輸過來然後顯示在頁面上的例子:

如果要處理<code>$.ajax()</code>得到的資料,則需要使用回調函數:beforeSend、error、dataFilter、success、complete。

beforeSend

在發送請求之前調用,并且傳入一個 XMLHttpRequest 作為參數。

error

在請求出錯時調用。傳入 XMLHttpRequest 對象,描述錯誤類型的字元串以及一個異常對象(如果有的話)

dataFilter

在請求成功之後調用。傳入傳回的資料以及 "dataType" 參數的值。并且必須傳回新的資料(可能是處理過的)傳遞給 success 回調函數。

success() //最常用的

當請求之後調用。傳入傳回後的資料,以及包含成功代碼的字元串。

complete

當請求完成之後調用這個函數,無論成功或失敗。傳入 XMLHttpRequest 對象,以及一個包含成功或錯誤代碼的字元串。

更多詳情請參考:https://www.w3school.com.cn/jquery/ajax_ajax.asp

繼續閱讀