Ajax
首先大概說下同步互動和非同步互動
空洞的說寫概念的話,比較抽象,所以舉例說下什麼是非同步和同步
同步就是我發送了資料,我必須等接收方接收完了才能發送下一個資料
非同步就是我發送了資料,接收方接收吧,我不用看著發完在發送下個資料,你只要發送完告訴我就行。
Ajax的全程就是非同步javascript和xml
定義的是允許瀏覽器與伺服器通訊而無須重新整理當前頁面的技術都被叫做Ajax
Ajax的模型比傳統的模型好在什麼地方?
1.需要的頁面的數量少,效能高
2.同樣的情境下,Ajax互動的資料小,對我們頻寬的要求降低
3.對伺服器端造成的壓力小
出了Ajax技術還有flash,iframe,xmlhttprequest等技術可以實現非同步互動。
下面說下AJAX的工作原理
用戶端和服務端之間存在Ajax引擎,Ajax實現互動時,大量使用了Ajax引擎和javascript引擎
AJAX 不是一種技術,它包含了javascript,xHtML和css,Dom和xmlhttprequest等
Ajax的缺陷:
1.Ajax不適用於任何情境,取決於瀏覽器的支援,用戶端和服務端不重新整理頁面,容易使頁面的快取資料較多,使用者經常搞不清楚,資料是新的還是舊的,這是就必須拿出一塊地方進行專門的提示,瀏覽器也失去了前進和後退的功能。而且Ajax對媒體流不能很好的支援,對一些手持功能不能很好地支援,只能基本上支援Ajax非同步互動
下面著重說下Xmlhttprequest
xmlhttprequest是javascript的對象,作用是實現用戶端和服務端之間的請求和響應,是Ajax的核心對象
下面說下Ajax的實現步驟:
1.建立Xmlhttprequest對象
2.註冊監聽
2.1擷取服務端的通訊狀態
2.2擷取伺服器端的響應狀態代碼
3.建立串連
4.發送請求
註冊監聽
使用xmlhttprequest對象的onreadystatechange屬性:監聽伺服器的通訊狀態
使用xmlhttprequest對象的readyState屬性擷取伺服器的響應狀態。
使用xmlhttprequest對象的satus屬性:擷取響應資訊的首部資訊的前三位狀態代碼
用戶端與伺服器之間建立串連
使用的是xmlhttprequest對象的openmethod,url,asynch)方法
請求類型有get和post兩種方式
向服務端發送請求資料
使用xmlhttprequest對象send)方法,其中在post方式下send可以發送資料,但是必須佈建要求頭資訊content-type
使用
使用Ajax非同步互動時。用戶端接收伺服器的相應資料:
使用xmlhttprequest對象的responseText屬性:接受的內容是常值內容還是html代碼
用戶端接收服務端的響應時,資料格式:xml
用戶端接收伺服器端的響應時,資料格式:XML
* 伺服器端:
* 設定響應首部資訊:"Content-Type"為"text/xml"
response.setContentType("text/xml;charset=utf-8");
* 手動構建的xml格式資料
* 資料來源於查詢資料庫,封裝在javabean、List、Map和Array集合等
* 如何將javabean、List、Map和Array集合內容轉換成xml資料格式?
* 用戶端:
* 使用XMLHttpRequest對象的responseXML屬性:接收的格式是XML格式
* 利用DOM解析XML格式資料
本文出自 “會話” 部落格,請務必保留此出處http://7720365.blog.51cto.com/7710365/1290200