Ajax筆記
就是讓JS能夠讀取伺服器,填寫表單發型消息的時候不用再重新整理頁面了(無重新整理頁面資料讀取,應用使用者注冊和聊天室)。
定義和用法:
Ajax()方法是JQ底層AJAX實作。另外的方法可以使用JQ的高層方法,比如$.get,$.post。
文法:JQuery.ajax([settings]) settings為參數
參數:
Options
Context 用于設定Ajax相關回調函數的上下文,讓回調函數this指向這個對象(如果不設定這個參數,那麼this指定的就是本次ajax請求時傳遞的options參數)。假如指定一個dom元素作為context參數,這樣就設定了success回調函數的上下文為這個dom元素
(+dom元素:dom , 文檔對象模型。那麼文檔對象模型的元素是什麼?就是指文檔的組成部分,組成部分包括html,js,css等。這個了解還有待深入)
Async 預設值:true 所有請求均為異步請求
Cache 預設值:true 緩存頁面
Global 預設值:true 是否觸發全局AJAX事件
IfModified 預設值:false 僅在伺服器資料改變時擷取新資料
processData 預設值:true 預設情況下,通過data選項傳遞進來的資料,如果是一個對象(技術上講隻要不是字元串),都會處理轉化成一個查詢字元串,以配合預設内容類型 "application/x-www-form-urlencoded"。
Traditional 想要用傳統的方式來序列化資料,就設定為true
beforeSend(XHR) 事件 傳回false則取消
Complete(XHR,TS) 事件 請求完成後的回調函數(請求成功或失敗之後均調用)
dataFilter 給AJAX傳回的原始資料的進行預處理函數[data,type] data是傳回的原始資料,type是調用時提供的參數
Error 事件 請求失敗調用此函數,自動判斷(xml或html)[XMLHTTPRequest對象、錯誤資訊、(可選)捕獲的異常對象]
Success 請求成功後的回調函數
Xhr 需要傳回一個 XMLHttpRequest 對象。預設在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 。用于重寫或者提供一個增強的 XMLHttpRequest 對象。
(+XMLHTTPRequest:縮寫XHR,可擴充超文本傳輸請求。XMLHttpRequest對象可以在不向伺服器送出整個頁面的情況下,實作局部更新網頁。當頁面全部加載完畢後,用戶端通過該對象向伺服器請求資料,伺服器端接受資料并處理後,向用戶端回報資料。)
如果發生了錯誤,錯誤資訊(第二個參數)除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。
contentType 預設值"application/x-www-form-urlencoded" 發送消息至伺服器時内容編碼類型
Data 發送到伺服器的資料
dataType 預期伺服器傳回的資料類型
· "xml": 傳回 XML 文檔,可用 jQuery 處理。
· "html": 傳回純文字 HTML 資訊;包含的 script 标簽會在插入 dom 時執行。
· "script": 傳回純文字 JavaScript 代碼。不會自動緩存結果。除非設定了 "cache" 參數。注意:在遠端請求時(不在同一個域下),所有 POST 請求都将轉為 GET 請求。(因為将使用 DOM 的 script标簽來加載)
· "json": 傳回 JSON 資料 。
· "jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 将自動替換 ? 為正确的函數名,以執行回調函數。
· "text": 傳回純文字字元串
Jsonp 為jsonp請求指定一個回調函數名
Password 用于響應http通路認證請求的密碼
scriptCharset 隻有當請求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強制修改 charset。通常隻在本地和遠端的内容編碼不同時使用。
Type 預設值:“get”,請求方式 ("POST" 或 "GET")
Url 預設值: 目前頁位址
Username : 用于響應HTTP通路認證請求的使用者名
Timeout 設定請求逾時時間
總結:
回調函數
如果要處理 $.ajax() 得到的資料,則需要使用回調函數:beforeSend、error、dataFilter、success、complete。
beforeSend
在發送請求之前調用,并且傳入一個 XMLHttpRequest 作為參數。
error
在請求出錯時調用。傳入 XMLHttpRequest 對象,描述錯誤類型的字元串以及一個異常對象(如果有的話)
dataFilter
在請求成功之後調用。傳入傳回的資料以及 "dataType" 參數的值。并且必須傳回新的資料(可能是處理過的)傳遞給 success 回調函數。
success
當請求之後調用。傳入傳回後的資料,以及包含成功代碼的字元串。
complete
當請求完成之後調用這個函數,無論成功或失敗。傳入 XMLHttpRequest 對象,以及一個包含成功或錯誤代碼的字元串。
Ajax筆記
就是讓JS能夠讀取伺服器,填寫表單發型消息的時候不用再重新整理頁面了(無重新整理頁面資料讀取,應用使用者注冊和聊天室)。
定義和用法:
Ajax()方法是JQ底層AJAX實作。另外的方法可以使用JQ的高層方法,比如$.get,$.post。
文法:JQuery.ajax([settings]) settings為參數
參數:
Options
Context 用于設定Ajax相關回調函數的上下文,讓回調函數this指向這個對象(如果不設定這個參數,那麼this指定的就是本次ajax請求時傳遞的options參數)。假如指定一個dom元素作為context參數,這樣就設定了success回調函數的上下文為這個dom元素
(+dom元素:dom , 文檔對象模型。那麼文檔對象模型的元素是什麼?就是指文檔的組成部分,組成部分包括html,js,css等。這個了解還有待深入)
Async 預設值:true 所有請求均為異步請求
Cache 預設值:true 緩存頁面
Global 預設值:true 是否觸發全局AJAX事件
IfModified 預設值:false 僅在伺服器資料改變時擷取新資料
processData 預設值:true 預設情況下,通過data選項傳遞進來的資料,如果是一個對象(技術上講隻要不是字元串),都會處理轉化成一個查詢字元串,以配合預設内容類型 "application/x-www-form-urlencoded"。
Traditional 想要用傳統的方式來序列化資料,就設定為true
beforeSend(XHR) 事件 傳回false則取消
Complete(XHR,TS) 事件 請求完成後的回調函數(請求成功或失敗之後均調用)
dataFilter 給AJAX傳回的原始資料的進行預處理函數[data,type] data是傳回的原始資料,type是調用時提供的參數
Error 事件 請求失敗調用此函數,自動判斷(xml或html)[XMLHTTPRequest對象、錯誤資訊、(可選)捕獲的異常對象]
Success 請求成功後的回調函數
Xhr 需要傳回一個 XMLHttpRequest 對象。預設在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 。用于重寫或者提供一個增強的 XMLHttpRequest 對象。
(+XMLHTTPRequest:縮寫XHR,可擴充超文本傳輸請求。XMLHttpRequest對象可以在不向伺服器送出整個頁面的情況下,實作局部更新網頁。當頁面全部加載完畢後,用戶端通過該對象向伺服器請求資料,伺服器端接受資料并處理後,向用戶端回報資料。)
如果發生了錯誤,錯誤資訊(第二個參數)除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。
contentType 預設值"application/x-www-form-urlencoded" 發送消息至伺服器時内容編碼類型
Data 發送到伺服器的資料
dataType 預期伺服器傳回的資料類型
· "xml": 傳回 XML 文檔,可用 jQuery 處理。
· "html": 傳回純文字 HTML 資訊;包含的 script 标簽會在插入 dom 時執行。
· "script": 傳回純文字 JavaScript 代碼。不會自動緩存結果。除非設定了 "cache" 參數。注意:在遠端請求時(不在同一個域下),所有 POST 請求都将轉為 GET 請求。(因為将使用 DOM 的 script标簽來加載)
· "json": 傳回 JSON 資料 。
· "jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 将自動替換 ? 為正确的函數名,以執行回調函數。
· "text": 傳回純文字字元串
Jsonp 為jsonp請求指定一個回調函數名
Password 用于響應http通路認證請求的密碼
scriptCharset 隻有當請求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強制修改 charset。通常隻在本地和遠端的内容編碼不同時使用。
Type 預設值:“get”,請求方式 ("POST" 或 "GET")
Url 預設值: 目前頁位址
Username : 用于響應HTTP通路認證請求的使用者名
Timeout 設定請求逾時時間
總結:
回調函數
如果要處理 $.ajax() 得到的資料,則需要使用回調函數:beforeSend、error、dataFilter、success、complete。
beforeSend
在發送請求之前調用,并且傳入一個 XMLHttpRequest 作為參數。
error
在請求出錯時調用。傳入 XMLHttpRequest 對象,描述錯誤類型的字元串以及一個異常對象(如果有的話)
dataFilter
在請求成功之後調用。傳入傳回的資料以及 "dataType" 參數的值。并且必須傳回新的資料(可能是處理過的)傳遞給 success 回調函數。
success
當請求之後調用。傳入傳回後的資料,以及包含成功代碼的字元串。
complete
當請求完成之後調用這個函數,無論成功或失敗。傳入 XMLHttpRequest 對象,以及一個包含成功或錯誤代碼的字元串。