Ajax概念

歸正傳,AJAX其實不是一種語言,甚至不是一種技術,它是幾種技術的有機結合(Javascript、XML、CSS等等,其實有時還會用到更多的技術,比如偶鍾情滴java^_^,就像推War3,要多個兵種加起來用纔夠厲害。。。跑題了~~~~)。Javascript作爲腳本語言,用Javascript操作XML和CSS,用XML做爲數據的存儲介質,用CSS顯示效果和狀態。

這裏不得不提的一項內容就是XMLHttpRequest,偶認爲這是真正Ajax的核心東東(可能是偶見識太少了- -!),它可以模擬Request對象向服務器提交請求,並返回請求結果,這就摒棄了原有的讓人等的好煩的白白的瀏覽器顯示頁!!用句不怎麼術的術語說就是“動態無刷新”。廢話不說,來看看這麼強大的DD是怎麼實現的~~~

不同的瀏覽器實現的方式不一樣,對於Mozilla, Firefox, Safari, 和Netscape瀏覽器:

var xmlhttp=new XMLHttpRequest()

對於Internet Explorer:

var xmlhttp=CreatActiveObject("Micosoft.XMLHttp")

編程要點:

---------------------------屬性--------------------------------

屬性 值類型 說明
onreadystatechange 回調函數名稱的字符串 指明回調函數
readyState 請求狀態代碼,共四種狀態:
0    未初始化
1    正在裝載
2    裝載完畢
3    交互中
4    完成
XMLHttpRequest對象的請求狀態
responseText 返回數據的字符串形式 以字符串形式存儲該請求返回的數據
responseXML 返回一個Xml Document對象 以XML數據形式存儲請求返回的數據
status 請求所返回的HTTP返回碼:
"100" : Continue
"101" : witching Protocols
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information
"204" : No Content
"205" : Reset Content
"206" : Partial Content
"300" : Multiple Choices
"301" : Moved Permanently
"302" : Found
"303" : See Other
"304" : Not Modified
"305" : Use Proxy
"307" : Temporary Redirect
"400" : Bad Request
"401" : Unauthorized
"402" : Payment Required
"403" : Forbidden
"404" : Not Found
"405" : Method Not Allowed
"406" : Not Acceptable
"407" : Proxy Authentication Required
"408" : Request Time-out
"409" : Conflict
"410" : Gone
"411" : Length Required
"412" : Precondition Failed
"413" : Request Entity Too Large
"414" : Request-URI Too Large
"415" : Unsupported Media Type
"416" : Requested range not satisfiable
"417" : Expectation Failed
"500" : Internal Server Error
"501" : Not Implemented
"502" : Bad Gateway
"503" : Service Unavailable
"504" : Gateway Time-out
"505" : HTTP Version not supported

其實實際用的時候記着200是OK(本地調試時OK狀態會返回0),404是NO FOUND就可以了!

該XMLHttpRequest所做的請求返回的HTTP返回碼
statusText 字符串,此屬性只讀,以BSTR返回當前請求的響應行狀態,此屬性僅當數據發送並接收完畢後纔可獲取。 XMLHttpRequest所做的Http請求返回信息

---------------------------方法---------------------------

方法 參數 返回值 說明
abort() 取消當前的請求
getAllResponseHeaders() 以字符串形式返回所有的HTTP頭 以字符串形式返回所有的HTTP頭
getResponseHeader("headerName") headerName參數指定的http頭字符串 返回指定的HTTP頭字符串 從響應信息中獲取指定的http頭
open('method','URL',async,'uname','pswd') method字符串指定用何方法發送請求,比如POST、GET、PUT及PROPFIND。大小寫不敏感
URL字符串指定請求的HTTP地址,可以爲絕對路徑也可以爲相對路徑
async布爾值指定請求是否爲異步方式,默認爲true。如果爲真,當狀態改變時會調用onreadystatechange屬性指定的回調函數。
uname字符串指定用於服務器驗證用戶名,如果服務器需要驗證,此處指定用戶名,如果未指定,當服務器需要驗證時,會彈出驗證窗口。
pswd字符串指定驗證信息中的密碼部分,如果用戶名爲空則此部分被忽略。
創建一個新的http請求,並指定此請求的方法、URL以及驗證信息
send(content) content參數可以是任何想發送到服務器端的數據 發送請求到http服務器並接收回應,此方法的同步或異步方式取決於open方法中的bAsync參數,如果bAsync == False,此方法將會等待請求完成或者超時時纔會返回,如果bAsync == True,此方法將立即返回。如果發送的數據爲XML DOM object,則迴應將被編碼爲在xml文檔中聲明的編碼,如果在xml文檔中沒有聲明編碼,則使用默認的UTF-8。
setRequestHeader("label","value") label字符串指定頭名稱
value字符串指定頭的值
  單獨指定請求的某個http頭,如果已經存在已此名稱命名的http頭,則覆蓋之。此方法必須在open方法後調用。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章