blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評(píng)論 :: 0 Trackbacks
          來自天極

          對(duì)Ajax的研究有了一段時(shí)間了,從最初的遠(yuǎn)觀,到近看,再到實(shí)際動(dòng)手實(shí)現(xiàn),認(rèn)識(shí)越來越深,想法也越來越多。特別是曾經(jīng)有一陣子跑去研究web2.0,更是體會(huì)到Ajax背后的偉大,暗自為其慶幸,也越來越看好Web。

            不過Ajax在我心中卻有些怎么也擺脫不了的陰影。

            忽如一夜春風(fēng)來,Ajax就這么很突兀的就突然流行起來。同時(shí)流行的還有Web2.0,這些詞匯現(xiàn)在都無比的有鼓動(dòng)力,任何事物,只要沾上這兩者的邊,便變得神秘?zé)o比,無法遏制。

            但也有人說Ajax是噱頭,因?yàn)樗切缕垦b舊酒。

            其實(shí)Ajax之所以風(fēng)行,就在于它新瓶裝舊酒。Ajax所代表的3個(gè)概念,異步、Javascript、XML,應(yīng)該說都不是新東西。

            異步?在操作系統(tǒng)中我們?cè)缫呀?jīng)學(xué)過,那時(shí)的名字叫多線程。

            Javascript?想當(dāng)年的DHTML他就已經(jīng)紅遍大江南北。

            XML?瞧瞧那些名詞,SOAP、RSS、WAP等,這些名詞哪個(gè)離開得了XML?

            這些名詞結(jié)合在一起之所以產(chǎn)生強(qiáng)大的力量,就在于他們的設(shè)計(jì)不同,而隱藏在設(shè)計(jì)背后的思想不同。

            而這些名詞之所以可以紅火,就在于他們本身已經(jīng)應(yīng)用非常普遍,已經(jīng)深入到世界中的每個(gè)角落。

            即便是Ajax中稍微新鮮點(diǎn)的XMLHttpRequest,之前也不是沒有替代品。IFrame時(shí)代我們就已經(jīng)實(shí)現(xiàn)了同樣的功能,只是XMLHttpRequest可以比我們做的更好,幫助我們做的更多而已。

            Javascript是將Ajax所有技術(shù)糅合在一起的黏著劑。所謂的Ajax應(yīng)用程序,其實(shí)就是一個(gè)運(yùn)行在客戶端瀏覽器環(huán)境中的應(yīng)用程序。這個(gè)應(yīng)用程序通過DOM操作HTML將信息展示給用戶,通過事件機(jī)制相應(yīng)用戶操作,通過XMLHttpRequest與服務(wù)器溝通,使用的協(xié)議是HTTP,數(shù)據(jù)的載體是XML,而這個(gè)應(yīng)用程序就是由Javascript構(gòu)成的。

            Javascript是一種非常強(qiáng)大的語言,換句術(shù)語,是通用語言(general language)。Javascript有很多方便的并且強(qiáng)大的特性,使得我們可以開發(fā)功能豐富的產(chǎn)品。不過Javascript是腳本,還是腳本,這是他永遠(yuǎn)逃不開的厄運(yùn)。

            腳本有很多的問題,比如本身不夠嚴(yán)格,執(zhí)行緩慢的特點(diǎn)等,這里只討論一下代碼重用問題。

            當(dāng)應(yīng)用越來越復(fù)雜,代碼越來越多時(shí),代碼重用就會(huì)變得很重要。最低級(jí)的代碼重用就是源代碼級(jí)的代碼重用,靈活,但卻代價(jià)很高。比較先進(jìn)的平臺(tái),比如java和.net都已經(jīng)提供了更高級(jí)的代碼重用,中間代碼級(jí)的,甚至目標(biāo)代碼級(jí)的。甚至,在.net平臺(tái),按照微軟的偉大設(shè)想,不同語言的代碼都可以統(tǒng)一起來,一起運(yùn)行??上攵?,這會(huì)為.net平臺(tái)帶來多大的戰(zhàn)斗力。不同語言,不同的平臺(tái)的代碼都可以在這里施展拳腳。整合是現(xiàn)在的主旋律,.net有著更美好的未來(按照設(shè)想)。

            相比之下,作為腳本的Javascript這方面就要差距好多。在我們之前應(yīng)用程序規(guī)模不大時(shí),沒有人會(huì)在意。但是,當(dāng)我們實(shí)現(xiàn)大量的Ajax應(yīng)用時(shí),當(dāng)我們逐漸豐富我們的客戶端時(shí),我們就會(huì)發(fā)現(xiàn)Javascript的硬傷,也就是腳本的硬傷。當(dāng)然,我們可以改造Javascript,讓他適應(yīng)我們的需求,但是那時(shí),你會(huì)突然發(fā)現(xiàn),Javascript(如果那個(gè)時(shí)候還叫這個(gè)名字的話)已經(jīng)不再是腳本了。

            換句話說,腳本的特點(diǎn)就是靈活,所以它是用來處理一些靈活,但是開發(fā)成本低的情況。而傳統(tǒng)的程序語言比較嚴(yán)格,開發(fā)成本高,但是他的運(yùn)行和維護(hù)成本會(huì)低。 于是,當(dāng)我們意識(shí)到Ajax背后是一種客戶段能力的提高,服務(wù)器端相應(yīng)功能向客戶端轉(zhuǎn)移之時(shí),我們便不得不重新審視一下Javascript在其中的尷尬位置。Javascript之所以在Ajax應(yīng)用中如此受寵,便在于它的靈活。靈活的Javascript獲得大眾的喜愛,逐漸成為標(biāo)準(zhǔn)。Ajax采用Javascript才能迅速的得以應(yīng)用,成為今天的寵兒。反過來說,正式因?yàn)镴avascript的靈活,決定它注定無法大型化,也就決定了Ajax的明天不會(huì)樂觀。(如果他還依靠Javascript,還叫Ajax,而不是AC(#)ax的話。)

            看看Ajax背后的競(jìng)爭(zhēng)者,micromedia的flash,java的web start,甚至.net都有可能成為他的強(qiáng)大敵人。微軟在宣傳它下一代操作系統(tǒng)的時(shí)候,著重講到了他的表現(xiàn)層。想象一下,當(dāng)所有的IE都支持微軟最新的表現(xiàn)層技術(shù)時(shí),誰還用Javascript?誰還用Ajax?

            不過即使Ajax倒下,不過不要緊,它本身就是一個(gè)過渡性技術(shù)。不過,Ajax所要做的,就是給我們洗腦:

            Ajax告訴我們,重視腳本,因?yàn)樗麄冹`活。

            Ajax告訴我們,重視用戶,因?yàn)樗麄兲湾X。

            Ajax告訴我們,重視交互,因?yàn)檐浖褪欠?wù)。

            Ajax告訴我們,重視Web,因?yàn)榉奖惚仁裁炊贾匾?/P>

            Ajax告訴我們,摘下眼罩,換種方式思考問題吧。當(dāng)你背過臉無視世界的變化時(shí),是世界拋棄了你,而不是你以為的掩耳盜鈴。

          posted on 2006-01-22 20:38 渠上月 閱讀(214) 評(píng)論(0)  編輯  收藏 所屬分類: java tips
          主站蜘蛛池模板: 弋阳县| 武川县| 凌云县| 阿坝县| 远安县| 体育| 桂林市| 江安县| 灵武市| 迁西县| 东阳市| 新泰市| 宁安市| 务川| 贵阳市| 五指山市| 陆川县| 政和县| 虹口区| 岫岩| 曲松县| 兴业县| 张家口市| 紫阳县| 临安市| 岗巴县| 静安区| 渝北区| 离岛区| 茂名市| 宽甸| 吕梁市| 日照市| 巴南区| 西安市| 太白县| 黄龙县| 息烽县| 安龙县| 昭平县| 景德镇市|