AJAX數據傳輸


AJAX = Asynchronous JavaScript and XML(異步的Javascript和XML)

AJAX最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據並更新部分網頁內容。

1.1     場景原理

 

       1-1.1      異步傳輸

ajax發送請求后,在等待server端返回的這個過程中,前台會繼續執行ajax塊后面的腳本,直到server端返回正確的結果才會去執行success

1-1.2      同步傳輸

ajax發送請求后,在等待server端返回的這個過程中,前台頁面里所有的代碼停止,頁面呈現假死狀態,當這個AJAX執行完畢后才會繼續運行其他代碼,頁面假死狀態解除。

1-1.3     使用方法

a)     創建 XMLHttpRequest 對象

var ajax =newXMLHttpRequest()

b)     發送請求

方法

描述

open(method,url,async)

規定請求的類型、URL 以及是否異步處理請求。

ü  method:請求的類型;GET POST

ü  url:文件在服務器上的位置

ü  asynctrue(異步)或 false(同步)

send(string)

將請求發送到服務器。

ü  string:僅用於 POST 請求

ü  GET數據

open(“GET”,url,true);

send();

ü  POST數據

open(“POST”,url,true);

send(data);

ü  設置頭部

setRequestHeader(header,value)

1-2    可發送的數據格式

ajax的數據格式有四種:文本,jsonHTML,和xml。現在普遍采用JSON數據格式發送數據。

1-2.1     JSON

JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基於 ECMAScript (w3c制定的js規范)的一個子集,采用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。

1-2.2     格式語法

JSON JS 對象的字符串表示法,它使用文本表示一個 JS 對象的信息,本質是一個字符串。

var obj ={a:'Hello', b:'World'};

//這是一個對象,注意鍵名也是可以使用引號包裹的

var json ='{"a": "Hello", "b": "World"}';

//這是一個 JSON 字符串,本質是一個字符串

1-2.3     JSON/JS對象互轉

要實現從對象轉換為 JSON 字符串,使用 JSON.stringify() 方法:

var json =JSON.stringify({a:'Hello', b:'World'});

//結果是 '{"a": "Hello", "b": "World"}'

要實現從 JSON字符串轉換為對象,使用 JSON.parse() 方法:

var obj =JSON.parse('{"a": "Hello", "b": "World"}');

//結果是 {a: 'Hello', b: 'World'}

1-3    響應/回調函數

每當 readyState 改變時,就會觸發 onreadystatechange 事件。

readyState 屬性存有 XMLHttpRequest 的狀態信息。

下面是 XMLHttpRequest 對象的三個重要的屬性:

屬性

描述

onreadystatechange

存儲函數(或函數名),每當 readyState 屬性改變時,就會調用該函數。

readyState

存有 XMLHttpRequest 的狀態。從 0 4 發生變化。

·      0: 請求未初始化

·      1: 服務器連接已建立

·      2: 請求已接收

·      3: 請求處理中

·      4: 請求已完成,且響應已就緒

status

200: "OK"
404:
未找到頁面

responseText

響應返回文本

responseXML

 

1-4    status狀態

服務器常用的狀態碼及其對應的含義如下:

ü  200:服務器響應正常。

ü 304:該資源在上次請求之后沒有任何修改(這通常用於瀏覽器的緩存機制,使用GET請求時尤其需要注意)。

ü  400:無法找到請求的資源。

ü  401:訪問資源的權限不夠。

ü  403:沒有權限訪問資源。

ü  404:需要訪問的資源不存在。

ü  405:需要訪問的資源被禁止。

ü  407:訪問的資源需要代理身份驗證。

ü  414:請求的URL太長。

ü  500:服務器內部錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM