對Ajax的研究有了一段時間了,從最初的遠觀,到近看,再到實際動手實現(xiàn),認識越來越深,想法也越來越多。特別是曾經(jīng)有一陣子跑去研究web2.0,更是體會到Ajax背后的偉大,暗自為其慶幸,也越來越看好Web。
不過Ajax在我心中卻有些怎么也擺脫不了的陰影。
忽如一夜春風(fēng)來,Ajax就這么很突兀的就突然流行起來。同時流行的還有Web2.0,這些詞匯現(xiàn)在都無比的有鼓動力,任何事物,只要沾上這兩者的邊,便變得神秘?zé)o比,無法遏制。
但也有人說Ajax是噱頭,因為他是新瓶裝舊酒。
其實Ajax之所以風(fēng)行,就在于它新瓶裝舊酒。Ajax所代表的3個概念,異步、Javascript、XML,應(yīng)該說都不是新東西。
異步?在操作系統(tǒng)中我們早已經(jīng)學(xué)過,那時的名字叫多線程。
Javascript?想當(dāng)年的DHTML他就已經(jīng)紅遍大江南北。
XML?瞧瞧那些名詞,SOAP、RSS、WAP等,這些名詞哪個離開得了XML?
這些名詞結(jié)合在一起之所以產(chǎn)生強大的力量,就在于他們的設(shè)計不同,而隱藏在設(shè)計背后的思想不同。
而這些名詞之所以可以紅火,就在于他們本身已經(jīng)應(yīng)用非常普遍,已經(jīng)深入到世界中的每個角落。
即便是Ajax中稍微新鮮點的XMLHttpRequest,之前也不是沒有替代品。IFrame時代我們就已經(jīng)實現(xiàn)了同樣的功能,只是XMLHttpRequest可以比我們做的更好,幫助我們做的更多而已。
Javascript是將Ajax所有技術(shù)糅合在一起的黏著劑。所謂的Ajax應(yīng)用程序,其實就是一個運行在客戶端瀏覽器環(huán)境中的應(yīng)用程序。這個應(yīng)用程序通過DOM操作HTML將信息展示給用戶,通過事件機制相應(yīng)用戶操作,通過XMLHttpRequest與服務(wù)器溝通,使用的協(xié)議是HTTP,數(shù)據(jù)的載體是XML,而這個應(yīng)用程序就是由Javascript構(gòu)成的。
Javascript是一種非常強大的語言,換句術(shù)語,是通用語言(general language)。Javascript有很多方便的并且強大的特性,使得我們可以開發(fā)功能豐富的產(chǎn)品。不過Javascript是腳本,還是腳本,這是他永遠逃不開的厄運。
腳本有很多的問題,比如本身不夠嚴格,執(zhí)行緩慢的特點等,這里只討論一下代碼重用問題。
當(dāng)應(yīng)用越來越復(fù)雜,代碼越來越多時,代碼重用就會變得很重要。最低級的代碼重用就是源代碼級的代碼重用,靈活,但卻代價很高。比較先進的平臺,比如java和.net都已經(jīng)提供了更高級的代碼重用,中間代碼級的,甚至目標代碼級的。甚至,在.net平臺,按照微軟的偉大設(shè)想,不同語言的代碼都可以統(tǒng)一起來,一起運行??上攵@會為.net平臺帶來多大的戰(zhàn)斗力。不同語言,不同的平臺的代碼都可以在這里施展拳腳。整合是現(xiàn)在的主旋律,.net有著更美好的未來(按照設(shè)想)。
相比之下,作為腳本的Javascript這方面就要差距好多。在我們之前應(yīng)用程序規(guī)模不大時,沒有人會在意。但是,當(dāng)我們實現(xiàn)大量的Ajax應(yīng)用時,當(dāng)我們逐漸豐富我們的客戶端時,我們就會發(fā)現(xiàn)Javascript的硬傷,也就是腳本的硬傷。當(dāng)然,我們可以改造Javascript,讓他適應(yīng)我們的需求,但是那時,你會突然發(fā)現(xiàn),Javascript(如果那個時候還叫這個名字的話)已經(jīng)不再是腳本了。
換句話說,腳本的特點就是靈活,所以它是用來處理一些靈活,但是開發(fā)成本低的情況。而傳統(tǒng)的程序語言比較嚴格,開發(fā)成本高,但是他的運行和維護成本會低。 于是,當(dāng)我們意識到Ajax背后是一種客戶段能力的提高,服務(wù)器端相應(yīng)功能向客戶端轉(zhuǎn)移之時,我們便不得不重新審視一下Javascript在其中的尷尬位置。Javascript之所以在Ajax應(yīng)用中如此受寵,便在于它的靈活。靈活的Javascript獲得大眾的喜愛,逐漸成為標準。Ajax采用Javascript才能迅速的得以應(yīng)用,成為今天的寵兒。反過來說,正式因為Javascript的靈活,決定它注定無法大型化,也就決定了Ajax的明天不會樂觀。(如果他還依靠Javascript,還叫Ajax,而不是AC(#)ax的話。)
看看Ajax背后的競爭者,micromedia的flash,java的web start,甚至.net都有可能成為他的強大敵人。微軟在宣傳它下一代操作系統(tǒng)的時候,著重講到了他的表現(xiàn)層。想象一下,當(dāng)所有的IE都支持微軟最新的表現(xiàn)層技術(shù)時,誰還用Javascript?誰還用Ajax?
不過即使Ajax倒下,不過不要緊,它本身就是一個過渡性技術(shù)。不過,Ajax所要做的,就是給我們洗腦:
Ajax告訴我們,重視腳本,因為他們靈活。
Ajax告訴我們,重視用戶,因為他們掏錢。
Ajax告訴我們,重視交互,因為軟件就是服務(wù)。
Ajax告訴我們,重視Web,因為方便比什么都重要。
Ajax告訴我們,摘下眼罩,換種方式思考問題吧。當(dāng)你背過臉無視世界的變化時,是世界拋棄了你,而不是你以為的掩耳盜鈴。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。