AJAX(2)
AJAX (Asynchronous Javascript And XML)
你看到一個網頁代碼,網頁裏有script代碼,script裏麵有XMLHttpRequest
於是基本可以確定你在看一個應用了ajax的網頁
AJAX就是這麼簡單
在javascript裏定義一些XMLHttpRequest,通過.open和.send來設定並執行一些行為。
通過onreadystatechange裏麵 定義對不同的readystate有什麼樣的行為並針對不同狀態改變DOM架構的網頁內容(當然不用DOM也沒所謂)
於是就結束了
我們看下涉及到了哪些點
1.XMLHttpRequest
技術上來講, 這個對象是ajax的核心,所有的東西都從這個上引出
IE5.0之前放棄吧,就壓根沒支持,5.0到7.0用ActiveXObject 之後聽說是與firefox一致將其視為javascript對象了
所以一般來講會列出幾種
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp_request = new XMLHttpRequest();
有興趣的自己可以查下 若你做的網頁想在所有瀏覽器上都可以正常工作的話。
它的內部包含了以下對象和方法
對象
readyState 請求的狀態 0=初始化 1=讀取中 2=已讀取 3=交互中 4=完成
onreadystatechange 一個事件觸發器,隻要readyState改變了 就會被觸發
status 包含正常的HTTP請求可能出現的status 比如 200是成功 404是頁麵沒找到 等等。
statusText 請求後服務端返回的狀態文本,隻有readyState的值為3或者4的時候 才有用
responseText 服務端返回信息的文本形式
responseXML 服務端返回信息的XML對象(兼容DOM),當readyState為3或者4的時候,一般Content-Type=text/xml或application/xml
方法
open方法 用來設定請求的行為模式及參數
open(act, url, async)
一般3個參數,第一個是HTTP行為模式(GET, POST, PUT, DELETE,HEAD),第二個是URL, 第三個是是否為異步
GET是取得頁麵,POST以表單方式提交並取得相應反饋頁麵,PUT為創建保存行為,DELETE為刪除行為,HEAD為隻收取相應頁麵的HEAD部分(寫過HTML的都該知道什麼是head部分吧)
send方法 用來發送請求
send(var)
有一個參數,在你什麼都不想做的時候 直接寫個null就好,若是有東西要post過去的話 也可以在這裏寫 若是open中的是否異步為真的時候將立刻返回 繼續程序流程
abort方法 用來取消請求
abort()
無參數 用來取消請求 將其readyState重置為0
setRequestHeader()方法 用於設置發出請求的head
setRequestHeader(DOMString head, DOMString value)
兩個參數,要求是DOMString類型的head以及value, 隻能在readyState=1的時候使用 否則 將返回異常
getRequestHeader()方法 用於得到響應的head
getRequestHeader(DOMString head)
一個參數 要求是DOMString類型, 在readyState為3或4之前 隻能得到空
getAllRequestHeader()方法 用於得到所有響應的head
getAllRequestHeader()
無參數 在readyState為3或4之前 隻能得到空,得到的每個head信息將單獨作為一行
大概就這麼多了 各位應用的時候多嚐試就知道了
最後更新:2017-04-02 00:06:41