Ajax號稱是在Web2.0的浪潮中,最熱門的Web技術(shù)。
Ajax(Asynchronous JavaScript and XML)并不是新的技術(shù),它是多種技術(shù)的結(jié)合,使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn);使用文檔對象模型(Document Object Model)作動態(tài)顯示和交互;使用XML和XSLT做數(shù)據(jù)交互和操作;使用XMLHttpRequest 進行異步數(shù)據(jù)接收;使用JavaScript綁定和處理所有數(shù)據(jù)。Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),從而達到節(jié)約ISP的空間及帶寬租用成本的目的。而Ajax引擎,實際上是一個比較復(fù)雜的JavaScript應(yīng)用程序,用來處理用戶請求,讀寫服務(wù)器和更改DOM內(nèi)容。 Ajax是傳統(tǒng)WEB應(yīng)用程序的一個轉(zhuǎn)變。以前是服務(wù)器每次生成HTML頁面并返回給客戶端(瀏覽器)。在大多數(shù)網(wǎng)站中,很多頁面中至少90%都是一樣的,比如:結(jié)構(gòu)、格式、頁頭、頁尾、廣告等,所不同的只是一小部分的內(nèi)容,但每次服務(wù)器都會生成所有的頁面再返回給客戶端,這無形之中是一種浪費,不管是對于用戶的時間、帶寬、CPU耗用,還是對于ISP的高價租用的帶寬和空間來說。如果按一頁來算,只能幾K或是幾十K可能并不起眼,但像SINA每天要生成幾百萬個頁面的大ISP來說,可以說是損失巨大的。而AJAX可以所為客戶端和服務(wù)器的中間層,來處理客戶端的請求,并根據(jù)需要向服務(wù)器端發(fā)送請求,用什么就取什么、用多少就取多少,就不會有數(shù)據(jù)的冗余和浪費,減少了數(shù)據(jù)下載總量,而且更新頁面時不用重載全部內(nèi)容,只更新需要更新的那部分即可,相對于純后臺處理并重載的方式縮短了用戶等待時間,也把對資源的浪費降到*,基于標(biāo)準(zhǔn)化的并被廣泛支持和技術(shù),并且不需要插件或下載小程序,所以Ajax對于用戶和ISP來說是雙盈的。 Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離),而在以前兩者是沒有清晰的界限的,數(shù)據(jù)與呈現(xiàn)分離的分離,有利于分工合作、減少非技術(shù)人員對頁面的修改造成的WEB應(yīng)用程序錯誤、提高效率、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)。也可以把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理。 正面: 1、減輕服務(wù)器的負擔(dān)。因為Ajax的根本理念是“按需取數(shù)據(jù)”,所以*可能在減少了冗余請求和響影對服務(wù)器造成的負擔(dān); 2、無刷新更新頁面,減少用戶實際和心理等待時間; 3、也可以把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),節(jié)約空間和帶寬租用成本; 4、Ajax由于可以調(diào)用外部數(shù)據(jù); 5、基于標(biāo)準(zhǔn)化的并被廣泛支持和技術(shù),并且不需要插件或下載小程序; 6、Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離);8、對于用戶和ISP來說是雙盈的。 負面: 1、一些手持設(shè)備(如手機、PDA等)現(xiàn)在還不能很好的支持Ajax; 2、用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是讓人頭痛的事; 3、Ajax的無刷新重載,由于頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾――用戶不太清楚現(xiàn)在的數(shù)據(jù)是新的還是已經(jīng)更新過的;現(xiàn)有的解決有:在相關(guān)位置提示、數(shù)據(jù)更新的區(qū)域設(shè)計得比較明顯、數(shù)據(jù)更新后給用戶提示等; 4、對流媒體的支持沒有FLASH、Java Applet好;
Ajax(Asynchronous JavaScript and XML)并不是新的技術(shù),它是多種技術(shù)的結(jié)合,使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn);使用文檔對象模型(Document Object Model)作動態(tài)顯示和交互;使用XML和XSLT做數(shù)據(jù)交互和操作;使用XMLHttpRequest 進行異步數(shù)據(jù)接收;使用JavaScript綁定和處理所有數(shù)據(jù)。Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),從而達到節(jié)約ISP的空間及帶寬租用成本的目的。而Ajax引擎,實際上是一個比較復(fù)雜的JavaScript應(yīng)用程序,用來處理用戶請求,讀寫服務(wù)器和更改DOM內(nèi)容。 Ajax是傳統(tǒng)WEB應(yīng)用程序的一個轉(zhuǎn)變。以前是服務(wù)器每次生成HTML頁面并返回給客戶端(瀏覽器)。在大多數(shù)網(wǎng)站中,很多頁面中至少90%都是一樣的,比如:結(jié)構(gòu)、格式、頁頭、頁尾、廣告等,所不同的只是一小部分的內(nèi)容,但每次服務(wù)器都會生成所有的頁面再返回給客戶端,這無形之中是一種浪費,不管是對于用戶的時間、帶寬、CPU耗用,還是對于ISP的高價租用的帶寬和空間來說。如果按一頁來算,只能幾K或是幾十K可能并不起眼,但像SINA每天要生成幾百萬個頁面的大ISP來說,可以說是損失巨大的。而AJAX可以所為客戶端和服務(wù)器的中間層,來處理客戶端的請求,并根據(jù)需要向服務(wù)器端發(fā)送請求,用什么就取什么、用多少就取多少,就不會有數(shù)據(jù)的冗余和浪費,減少了數(shù)據(jù)下載總量,而且更新頁面時不用重載全部內(nèi)容,只更新需要更新的那部分即可,相對于純后臺處理并重載的方式縮短了用戶等待時間,也把對資源的浪費降到*,基于標(biāo)準(zhǔn)化的并被廣泛支持和技術(shù),并且不需要插件或下載小程序,所以Ajax對于用戶和ISP來說是雙盈的。 Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離),而在以前兩者是沒有清晰的界限的,數(shù)據(jù)與呈現(xiàn)分離的分離,有利于分工合作、減少非技術(shù)人員對頁面的修改造成的WEB應(yīng)用程序錯誤、提高效率、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)。也可以把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理。 正面: 1、減輕服務(wù)器的負擔(dān)。因為Ajax的根本理念是“按需取數(shù)據(jù)”,所以*可能在減少了冗余請求和響影對服務(wù)器造成的負擔(dān); 2、無刷新更新頁面,減少用戶實際和心理等待時間; 3、也可以把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),節(jié)約空間和帶寬租用成本; 4、Ajax由于可以調(diào)用外部數(shù)據(jù); 5、基于標(biāo)準(zhǔn)化的并被廣泛支持和技術(shù),并且不需要插件或下載小程序; 6、Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離);8、對于用戶和ISP來說是雙盈的。 負面: 1、一些手持設(shè)備(如手機、PDA等)現(xiàn)在還不能很好的支持Ajax; 2、用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是讓人頭痛的事; 3、Ajax的無刷新重載,由于頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾――用戶不太清楚現(xiàn)在的數(shù)據(jù)是新的還是已經(jīng)更新過的;現(xiàn)有的解決有:在相關(guān)位置提示、數(shù)據(jù)更新的區(qū)域設(shè)計得比較明顯、數(shù)據(jù)更新后給用戶提示等; 4、對流媒體的支持沒有FLASH、Java Applet好;