Ajax原理以及優缺點
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
相關文章
- Ajax,jQuery ajax,axios和fetch介紹、區別以及優缺點jQueryiOS
- ajax、axios、fetch之間的詳細區別以及優缺點iOS
- MyBatis的優缺點以及特點MyBatis
- docker簡介以及優缺點Docker
- ajax的缺點?
- Ajax、fetch、axios的區別與優缺點iOS
- 使用ajax輪詢介面有什麼優缺點?
- rem佈局原理和優缺點REM
- GAN原理,優缺點、應用總結
- 資料互動——Promise、Ajax、axios和fetch的優缺點PromiseiOS
- http 請求-01-AJAX(Asynchronous JavaScript and XML)入門介紹, ajax 的優缺點HTTPJavaScriptXML
- ajax優點?
- js實現繼承的方法以及優缺點JS繼承
- js建立物件的各種方法以及優缺點JS物件
- Node.js 優缺點以及應用場景Node.js
- 51. ajax幾種請求方式?他們的優缺點?
- 談談nginx和lvs各自的優缺點以及使用Nginx
- Hive 優缺點Hive
- MapReduce優缺點
- RabbitMQ優缺點MQ
- HTTPS 優點與缺點HTTP
- Java裡連線字串的幾種方式以及優缺點Java字串
- Docker的優缺點Docker
- 淺析地面投影的使用原理以及優點
- 【Java面試】RDB 和 AOF 的實現原理、優缺點Java面試
- GC演算法介紹及工作原理和優缺點GC演算法
- 內聯的優缺點
- HTTP1.1 優缺點HTTP
- 繼承的優缺點繼承
- serverless與容器優缺點Server
- hadoop-HDFS優缺點Hadoop
- MySQL索引的優缺點MySql索引
- Linux中LVM的工作原理是什麼?優缺點有哪些?LinuxLVM
- 節點快取的優缺點快取
- 繼承的優點和缺點繼承
- iframe有哪些優點和缺點?
- ajax和fetch、axios的區別以及axios原理iOS
- 遞迴與迭代的聯絡以及優缺點(以c++為例)遞迴C++