Ajax原理以及優缺點

泥猴桃發表於2019-02-17

ajax原理和XMLHttpRequest物件
Ajax 的原理簡單來說通過XMLHttpRequest 物件來向伺服器發非同步請求,從伺服器獲取資料,然後用javascript 來操作DOM 來更新頁面,這其中最關鍵的一步就是從伺服器獲得請求資料。要清除這個過程和原理,我們必須對XMLHttpRequest 有所瞭解。
XMLHttpRequest 是ajax 的核心機制,他是在IE5中首先引入的。是一種支援非同步請求的技術。簡單的說,也就是javascript 可以及時向伺服器提出請求和處理響應,而不是阻塞使用者,達到無重新整理的效果。
所以我們先從XMLHttpRequest講起,來看看它的工作原理。
首先,我們先來看看XMLHttpRequest這個物件的屬性。
它的屬性有:
onreadystatechange 每次狀態改變所觸發事件的事件處理程式。

responseText 從伺服器程式返回資料的字串形式。

responseXML 從伺服器程式返回的DOM相容的文件資料物件。

status 從伺服器返回的數字程式碼,比如常見的404(未找到)和200(已就緒)

status Text 伴隨狀態碼的字串資訊

readyState 物件狀態值

0 (未初始化) 物件已建立,但是尚未初始化(尚未呼叫open方法)

1 (初始化) 物件已建立,尚未呼叫send方法

2 (傳送資料) send方法已呼叫,但是當前的狀態及http頭未知

3 (資料傳送中) 已接收部分資料,因為響應及http頭不全,這時通過responseBody和responseText獲取部分資料會出現錯誤,

4 (完成) 資料接收完畢,此時可以通過responseXml和responseText獲取完整的迴應資料。

Ajax優缺點:

1.無重新整理更新資料

Ajax最大的優點就是能在不重新整理整個頁面的情況下維持與伺服器通訊

2.非同步與伺服器通訊

使用非同步的方式與伺服器通訊,不打斷使用者的操作

3.前端與後端負載均衡

將一些後端的工作移到前端,減少伺服器與頻寬的負擔

4.基於規範被廣泛支援

不需要下載瀏覽器外掛或者小程式,但需要客戶允許JavaScript在瀏覽器上執行。

5.介面與應用分離

Ajax使得介面與應用分離,也就是資料與呈現分離

缺點

1.Ajax幹掉了Back與History功能,即對瀏覽器機制的破壞

在動態更新頁面的情況下,使用者無法回到前一頁的頁面狀態,因為瀏覽器僅能記憶歷史紀錄中的靜態頁面

2.安全問題

AJAX技術給使用者帶來很好的使用者體驗的同時也對IT企業帶來了新的安全威脅,Ajax技術就如同對企業資料建立了一個直接通道。這使得開發者在不經意間會暴露比以前更多的資料和伺服器邏輯。

3.對搜尋引擎支援較弱

4.破壞程式的異常處理機制

5.違背URL與資源定位的初衷

6.客戶端肥大,太多客戶段程式碼造成開發上的成本

文章摘錄:
http://www.cnblogs.com/yingsmirk/archive/2012/04/10/2441193.html

相關文章