Ajax內(nèi)部交流文檔一、使用Ajax的主要原因
1、通過適當(dāng)?shù)腁jax應(yīng)用達(dá)到更好的用戶體驗(yàn);
2、把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約ISP的空間及帶寬租用成本的目的。
二、引用
Ajax這個(gè)概念的最早提出者Jesse James Garrett認(rèn)為:
Ajax是Asynchronous JavaScript and XML的縮寫。
Ajax并不是一門新的語言或技術(shù),它實(shí)際上是幾項(xiàng)技術(shù)按一定的方式組合在一在同共的協(xié)作中發(fā)揮各自的作用,它包括
使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn);
使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互;
使用XML和XSLT進(jìn)行數(shù)據(jù)交換與處理;
使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀取;
最后用JavaScript綁定和處理所有數(shù)據(jù);
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。
并不是所有的用戶請(qǐng)求都提交給服務(wù)器,像—些數(shù)據(jù)驗(yàn)證和數(shù)據(jù)處理等都交給Ajax引擎自己來做,
只有確定需要從服務(wù)器讀取新數(shù)據(jù)時(shí)再由Ajax引擎代為向服務(wù)器提交請(qǐng)求。
三、概述
雖然Garrent列出了7條Ajax的構(gòu)成技術(shù),但個(gè)人認(rèn)為,所謂的Ajax其核心只有JavaScript、XMLHTTPRequest和DOM,
如果所用數(shù)據(jù)格式為XML的話,還可以再加上XML這一項(xiàng)(Ajax從服務(wù)器端返回的數(shù)據(jù)可以是XML格式,也可以是文本等其他格式)。
在舊的交互方式中,由用戶觸發(fā)一個(gè)HTTP請(qǐng)求到服務(wù)器,服務(wù)器對(duì)其進(jìn)行處理后再返回一個(gè)新的HTHL頁到客戶端,
每當(dāng)服務(wù)器處理客戶端提交的請(qǐng)求時(shí),客戶都只能空閑等待,并且哪怕只是一次很小的交互、
只需從服務(wù)器端得到很簡(jiǎn)單的一個(gè)數(shù)據(jù),都要返回一個(gè)完整的HTML頁,而用戶每次都要浪費(fèi)時(shí)間和帶寬去重新讀取整個(gè)頁面。
而使用Ajax后用戶從感覺上幾乎所有的操作都會(huì)很快響應(yīng)沒有頁面重載(白屏)的等待。
1、XMLHTTPRequest
Ajax的一個(gè)最大的特點(diǎn)是無需刷新頁面便可向服務(wù)器傳輸或讀寫數(shù)據(jù)(又稱無刷新更新頁面),
這一特點(diǎn)主要得益于XMLHTTP組件XMLHTTPRequest對(duì)象。這樣就可以向再發(fā)桌面應(yīng)用程序只同服務(wù)器進(jìn)行數(shù)據(jù)層面的交換,
而不用每次都刷新界面也不用每次將數(shù)據(jù)處理的工作提交給服務(wù)器來做,
這樣即減輕了服務(wù)器的負(fù)擔(dān)又加快了響應(yīng)速度、縮短了用戶等候時(shí)間。
最早應(yīng)用XMLHTTP的是微軟,IE(IE5以上)通過允許開發(fā)人員在Web頁面內(nèi)部使用XMLHTTP ActiveX組件擴(kuò)展自身的功能,
開發(fā)人員可以不用從當(dāng)前的Web頁面導(dǎo)航而直接傳輸數(shù)據(jù)到服務(wù)器上或者從服務(wù)器取數(shù)據(jù)。
這個(gè)功能是很重要的,因?yàn)樗鼛椭鷾p少了無狀態(tài)連接的痛苦,它還可以排除下載冗余HTML的需要,從而提高進(jìn)程的速度。