AJAX憂慮與啟發(fā)成也腳本,敗也腳本_AJAX教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:不用組件實(shí)現(xiàn)Ajax效果
      現(xiàn)在.NET的Ajax組件確實(shí)不少了,微軟的ajax extensions用起來很方便,一個(gè)UpdatePanel就可以搞定一切。不過,可能有些朋友更愿意自己來寫。那么在.NET里,你是否知道ICallbackEventHandler呢

      一直很頭疼一個(gè)新名詞的具體內(nèi)涵,AJAX就是。惟有借許多資料的查閱、討論才有自己的認(rèn)識(shí)。所以,看到就摘錄下來,留為己用,又或?yàn)榇蠹夜操p、傳播、討論之。下為轉(zhuǎn)文:

      對(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ù)語,是通用語言(generallanguage)。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)?#106avascript的靈活,決定它注定無法大型化,也就決定了Ajax的明天不會(huì)樂觀。(如果他還依靠javascript,還叫Ajax,而不是AC(#)ax的話。)

      看看Ajax背后的競(jìng)爭(zhēng)者,micromedia的flash,java的webstart,甚至.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í),是世界拋棄了你,而不是你以為的掩耳盜鈴。

      分享:使用AJAX技術(shù)實(shí)現(xiàn)網(wǎng)頁無閃自動(dòng)局部刷新
      實(shí)例解決問題: 希望實(shí)現(xiàn)用戶在進(jìn)入系統(tǒng)以后(整個(gè)session的時(shí)效之內(nèi)),如果收到新郵件則發(fā)出聲音提示。 實(shí)現(xiàn)思路: 1.首頁部分: body onload=init('');> // load時(shí)調(diào)用init(us

      來源:模板無憂//所屬分類:AJAX教程/更新時(shí)間:2008-08-22
      相關(guān)AJAX教程