Ajax的技術核心實現動態無重新整理

尛沫發表於2014-04-08

Ajax實現的web互動效果跟傳統的大不相同,它通過Ajax 引擎,使得應用過程很自然,操作很流暢,因為其只和伺服器交換有用的資料,而頁面顯示等不必要的資料則不再重新載入。Ajax 引擎其實就是JavaScript、XML、XMLHttpRequest等等各項技術的綜合應用。

Ajax其核心只有JavaScript、XMLHTTPRequest和DOM,如果所用資料格式為XML的話,還可以再加上XML這一項(Ajax從伺服器端返回的資料可以是XML格式,也可以是文字等其他格式)。

在舊的互動方式中,由使用者觸發一個HTTP請求到伺服器,伺服器對其進行處理後再返回一個新的HTHL頁到客戶端,每當伺服器處理客戶端提交的請求時,客戶都只能空閒等待,並且哪怕只是一次很小的互動、只需從伺服器端得到很簡單的一個資料,都要返回一個完整的HTML頁,而使用者每次都要浪費時間和頻寬去重新讀取整個頁面。而使用Ajax後使用者從感覺上幾乎所有的操作都會很快響應沒有頁面過載(白屏)的等待。

1.XMLHTTPRequest

Ajax的一個最大的特點是無需重新整理頁面便可向伺服器傳輸或讀寫資料(又稱無重新整理更新頁面),這一特點主要得益於XMLHTTP元件XMLHTTPRequest物件。這樣就可以向再發桌面應用程式只同伺服器進行資料層面的交換,而不用每次都重新整理介面也不用每次將資料處理的工作提交給伺服器來做,這樣即減輕了伺服器的負擔又加快了響應速度、縮短了使用者等候時間。

最早應用XMLHTTP的是微軟,IE(IE5以上)通過允許開發人員在Web頁面內部使用XMLHTTP ActiveX元件擴充套件自身的功能,開發人員可以不用從當前的Web頁面導航而直接傳輸資料到伺服器上或者從伺服器取資料。這個功能是很重要的,因為它幫助減少了無狀態連線的痛苦,它還可以排除下載冗餘HTML的需要,從而提高程式的速度。Mozilla(Mozilla1.0以上及NetScape7以上)做出的回應是建立它自己的繼承XML代理類:XMLHttpRequest類。Konqueror (和Safari v1.2,同樣也是基於KHTML的瀏覽器)也支援XMLHttpRequest物件,而Opera也將在其v7.6x+以後的版本中支援XMLHttpRequest物件。對於大多數情況,XMLHttpRequest物件和XMLHTTP元件很相似,方法和屬性也類似,只是有一小部分屬性不支援。

2.JavaScript

JavaScript是一在瀏覽器中大量使用的程式語言,,他以前一直被貶低為一門糟糕的語言(他確實在使用上比較枯燥),以在常被用來作一些用來炫耀的小玩意和惡作劇或是單調瑣碎的表單驗證。但事實是,他是一門真正的程式語言,有著自已的標準並在各種瀏覽器中被廣泛支援。

3.DOM

Document Object Model。 DOM是給 HTML 和 XML 檔案使用的一組 API。它提供了檔案的結構表述,讓你可以改變其中的內容及可見物。其本質是建立網頁與 Script 或程式語言溝通的橋樑。所有WEB開發人員可操作及建立檔案的屬性、方法及事件都以物件來展現(例如,document 就代表“檔案本身“這個對像,table 物件則代表 HTML 的表格物件等等)。這些物件可以由當今大多數的瀏覽器以Script 來取用。一個用HTML或XHTML構建的網頁也可以看作是一組結構化的資料,這些資料被封在DOM(Document Object Model)中,DOM提供了網頁中各個物件的讀寫的支援。

本文為Anyforweb技術分享部落格,需要了解網站建設相關,請訪問anyforweb.com。

相關文章