對學習Ajax的知識總結
1、對Ajax的初步認識
1.1、 Ajax 是一種網頁開發技術,( Asynchronous Javascript + XML )非同步 JavaScript 和 XML;
1.2、 Ajax是非同步互動,區域性重新整理;
1.3、
Ajax
能減少伺服器壓力;
1.4、
Ajax
能提高使用者體驗;
2、Ajax互動和傳統互動的比較
傳統互動:網頁整體重新整理,伺服器壓力大,使用者體驗不好;
Ajax
互動:區域性重新整理,伺服器壓力小,使用者體驗好;
3、Ajax核心知識
3.1 XMLHttpRequest物件的建立
所有現代瀏覽器均支援
XMLHttpRequest
物件(
IE5
和
IE6
使用
ActiveXObject
)。
XMLHttpRequest
用於在後臺與伺服器交換資料。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行區域性更新
。
3.2、XMLHttpRequest物件請求後臺
open(method,url,async):規定請求的型別、URL 以及是否非同步處理請求。
- method:請求的型別;GET 或 POST
- url:檔案在伺服器上的位置
- async:true(非同步)或 false(同步)
send(string):將請求傳送到伺服器。string:僅用於 POST 請求。
GET 還是 POST?
與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。
然而,在以下情況中,請使用 POST 請求:
- 無法使用快取檔案(更新伺服器上的檔案或資料庫)
- 向伺服器傳送大量資料(POST 沒有資料量限制)
- 傳送包含未知字元的使用者輸入時,POST 比 GET 更穩定也更可靠
setRequestHeader(header,value):向請求新增 HTTP 頭。
- header: 規定頭的名稱
- value: 規定頭的值
非同步 - True 或 False?
AJAX 指的是非同步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
為 True 的話,表示的是非同步,非同步表示程式請求伺服器的同時,程式可以繼續執行;能提高系統的執行效率;
為 False 的話,表示同步,JavaScript 會等到伺服器響應就緒才繼續執行。如果伺服器繁忙或緩慢,應用程式會掛起或停止。我們一般都是用 True;
3.3、XMLHttpRequest物件響應伺服器
onreadystatechange 事件:當請求被髮送到伺服器時,我們需要執行一些基於響應的任務。
每當 readyState 改變時,就會觸發 onreadystatechange 事件。readyState 屬性存有 XMLHttpRequest 的狀態資訊。下面是 XMLHttpRequest 物件的三個重要的屬性:
onreadystatechange儲存函式(或函式名),每當 readyState 屬性改變時,就會呼叫該函式。
readyState存有 XMLHttpRequest 的狀態。從 0 到 4 發生變化。
- 0: 請求未初始化
- 1: 伺服器連線已建立
- 2: 請求已接收
- 3: 請求處理中
- 4: 請求已完成,且響應已就緒
status
- 200: "OK"
- 404: 未找到頁面
在 onreadystatechange 事件中,我們規定當伺服器響應已做好被處理的準備時所執行的任務。
如需獲得來自伺服器的響應,需要使用 XMLHttpRequest 物件的 responseText 或 responseXML 屬性。
屬性 描述:
- responseText 獲得字串形式的響應資料。
- responseXML 獲得 XML 形式的響應資料。
4、自己對Ajax區域性資料互動流程的總結:
相比傳統的資料互動,Ajax的亮點後臺與伺服器僅僅進行少量資料交換。換言之就是不重新載入整個網頁的情況下,對網頁的某部分進行更新。我們要實現這個功能的話,首先需要一個XMLHttpRequest的物件,這個物件是目前主流瀏覽器都會內建的一個物件,這個物件就是為了完成區域性資料交換而存在的一個物件。為了相容不同版本的瀏覽器,我們建立這個物件的時候,需要考慮到執行此程式的瀏覽器時候有這個物件。然後要把請求傳送到後臺(XMLHttpRequest物件請求後臺)、後臺收到請求之後進行處理、經過處理的結果在返回到前臺進行展示(XMLHttpRequest物件響應伺服器),大致就是一個這樣的過程,這期間一直持續維護的一個物件就是XMLHttpRequest物件,這樣就實現了一個完整的區域性動態網頁更新的功能。