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