精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Ajax技術原理介紹
userphoto

2011.06.20

關注

Ajax全稱為 Asynchronous Javascript and XML (異步Javascript和XML),是指一種創建交互式網頁應用的網頁開發技術。

Ajax的核心是Javascript的XmlHttpRequest對象,該對象在IE5中首次引入,它是一種支持異步請求的技術,簡而言之,XmlHttpRequest可以使用Javascript向服務器提出請求并處理響應,而不阻塞用戶。

Ajax原理:
通過XmlHttpRequest對象來向服務器發送異步請求,從服務器獲得數據,然后用Javascript來操作DOM更新頁面。

主要包含的技術:

基于Web標準的XHTML和CSS
使用DOM(Document Object Model)進行動態顯示及交互
使用XML和XSLT進行數據交換及相關操作
使用XMLHttpRequest進行異步數據查詢,檢索
使用Javascript來綁定和調用


XmlHttpRequest對象的屬性:

onreadystatechange 每次狀態改變所觸發事件的事件處理程序
responseText 從服務器進程返回的字符串形式
responseXML 從服務器進程返回的DOM兼容的文檔數據對象
status 從服務器返回的數字代碼,比如常見的404(未找到)和200(已就緒)
statusText 描述了HTTP狀態代碼文本;并且僅當readyState值為3或4才可用。當readyState為其它值時試圖

存取statusText屬性將引發一個異常
readyState 對象狀態值
 0:(未初始化)對象已建立,但是尚未初始化(尚未調用open方法)
 1:(初始化)對象已建立,代碼已經調用了open()方法并且已經準備好把一個請求發送到服務器,尚未調用send方法
 2:(發送數據)send方法已調用,但是還沒有收到一個響應
 3:(數據傳輸中)已接收HTTP響應頭部分數據,但是消息體部分還沒有完全接收結束,這時通過responseXML和ResponseText獲取部分數據會出現錯誤
 4:(完成)數據接收完成,此時可以通過responseXML和responseText獲取完整的響應數據

XMLHttpRequest對象的方法:

open()

函數原型:
open(DOMString method,DOMString uri,boolean async,DOMString username,DOMString password)
參數說明:
第一個是發送請求的HTTP方法(GET,POST,PUT,DELETE或HEAD)
第二個用于指定XMLHttpRequest對象發送請求的URL地址
第三個參數指定是否異步發送請求,默認為true,為了發送一個同步請求,需要設置為false
第四個參數和第五個參數對于要求認證的服務器提供用戶名和密碼

send()

在通過調用open()方法準備好一個請求之后,你需要把該請求發送到服務器。僅當readyState值為1時,你才可以調用send()方法;否則的話,XMLHttpRequest對象將引發一個異常。該請求被使用提供給open()方法的參數發送到服務器。當async參數為true時,send()方法立即返回,從而允許其它客戶端腳本處理繼續。在調用send()方法后,XMLHttpRequest對象把readyState的值設置為2(發送)。當服務器響應時,在接收消息體之前,如果存在任何消息體的話,XMLHttpRequest對象將把readyState設置為3(正在接收中)。當請求完成加載時,它把readyState設置為4(已加載)。對于一個HEAD類型的請求,它將在把readyState值設置為3后再立即把它設置為4。send()方法使用一個可選的參數-該參數可以包含可變類型的數據。典型地,你使用它并通過POST方法把數據發送到服務器。另外,你可以顯式地使用null參數調用send()方法,這與不用參數調用它一樣。對于大多數其它的數據類型,在調用send()方法之前,應該使用setRequestHeader()方法(見后面的解釋)先設置Content-Type頭部。如果在send(data)方法中的data參數的類型為DOMString,那么,數據將被編碼為UTF-8。如果數據是Document類型,那么將使用由data.xmlEncoding指定的編碼串行化該數據。

abort()

暫停與一個XMLHttpRequest對象相聯系的HTTP請求,從而把該對象復位到未初始化狀態

setRequestHeader()

該setRequestHeader(DOMString header,DOMString value)方法用來設置請求的頭部信息。當readyState值為1時,你可以在調用open()方法后調用這個方法;否則,你將得到一個異常。

getResponseHeader()

getResponseHeader(DOMString header,value)方法用于檢索響應的頭部值。僅當readyState值是3或4(換句話說,在響應頭部可用以后)時,才可以調用這個方法;否則,該方法返回一個空字符串。

getAllResponseHeaders()

該getAllResponseHeaders()方法以一個字符串形式返回所有的響應頭部(每一個頭部占單獨的一行)。如果

readyState的值不是3或4,則該方法返回null。

Ajax應用的優勢:

1. 通過異步數據傳輸,提高用戶體驗
2. 減少不必要的數據傳輸,節省帶寬資源
3. 減輕服務器負擔

Ajax應用的缺陷:

1. 不利于搜索引擎的優化
2. 破壞了瀏覽器的后退機制

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
javascript XMLHttpRequest對象全面剖析
傳智播客:Ajax五步法 - habernate的日志 - 網易博客
AJAX請求的五個步驟及步驟詳解
Ajax原生XHR對象
快速了解JavaScript的Ajax
XHR
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 西昌市| 东光县| 镇坪县| 波密县| 吉林市| 若羌县| 清原| 灵川县| 万年县| 富源县| 双城市| 鹤庆县| 收藏| 磐石市| 乌审旗| 甘南县| 来安县| 卢氏县| 贵港市| 长寿区| 洪雅县| 普定县| 刚察县| 康马县| 南郑县| 凤冈县| 会东县| 泰安市| 宣城市| 林甸县| 安泽县| 博野县| 城市| 鹿邑县| 中超| 隆回县| 静海县| 平度市| 石阡县| 海南省| 万年县|