AJAX工作原理
文章出處:http://psychicreadingswithdeb.com 作者: 人氣: 發(fā)表時(shí)間:2016年05月10日
1.什么是AJAX?
AJAX全稱(chēng)為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是一種創(chuàng )建交互式網(wǎng)頁(yè)應用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。它使用:
使用XHTML+CSS來(lái)標準化呈現;
使用XML和XSLT進(jìn)行數據交換及相關(guān)操作;
使用XMLHttpRequest對象與Web服務(wù)器進(jìn)行異步數據通信;
使用Javascript操作Document Object Model進(jìn)行動(dòng)態(tài)顯示及交互;
使用JavaScript綁定和處理所有數據。
2.與傳統的web應用比較
傳統的Web應用交互由用戶(hù)觸發(fā)一個(gè)HTTP請求到服務(wù)器,服務(wù)器對其進(jìn)行處理后再返回一個(gè)新的HTHL頁(yè)到客戶(hù)端, 每當服務(wù)器處理客戶(hù)端提交的請求時(shí),客戶(hù)都只能空閑等待,并且哪怕只是一次很小的交互、只需從服務(wù)器端得到很簡(jiǎn)單的一個(gè)數據,都要返回一個(gè)完整的HTML頁(yè),而用戶(hù)每次都要浪費時(shí)間和帶寬去重新讀取整個(gè)頁(yè)面。這個(gè)做法浪費了許多帶寬,由于每次應用的交互都需要向服務(wù)器發(fā)送請求,應用的響應時(shí)間就依賴(lài)于服務(wù)器的響應時(shí)間。這導致了用戶(hù)界面的響應比本地應用慢得多。
與此不同,AJAX應用可以?xún)H向服務(wù)器發(fā)送并取回必需的數據,它使用SOAP或其它一些基于XML的Web Service接口,并在客戶(hù)端采用JavaScript處理來(lái)自服務(wù)器的響應。因為在服務(wù)器和瀏覽器之間交換的數據大量減少,結果我們就能看到響應更快的應用。同時(shí)很多的處理工作可以在發(fā)出請求的客戶(hù)端機器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。
3.AJAX的工作原理
Ajax的工作原理相當于在用戶(hù)和服務(wù)器之間加了—個(gè)中間層(AJAX引擎),使用戶(hù)操作與服務(wù)器響應異步化。并不是所有的用戶(hù)請求都提交給服務(wù)器,像—些數據驗證和數據處理等都交給Ajax引擎自己來(lái)做, 只有確定需要從服務(wù)器讀取新數據時(shí)再由Ajax引擎代為向服務(wù)器提交請求。
Ajax其核心有JavaScript、XMLHTTPRequest、DOM對象組成,通過(guò)XmlHttpRequest對象來(lái)向服務(wù)器發(fā)異步請求,從服務(wù)器獲得數據,然后用JavaScript來(lái)操作DOM而更新頁(yè)面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請求數據。讓我們來(lái)了解這幾個(gè)對象。