我的“Ajax”歷程
年底不是太忙,寫了一個仿windows的b/s軟件管理界面,主要實現了三種菜單,即下拉菜單、樹形菜單與右鍵菜單; 前面的文章將代碼也都發了出來;
有些朋友也向我請教關于Ajax的問題,當我回答,“其實我并沒有用Ajax”時,他們表示奇怪,其實,也沒有什么可奇怪的。Ajax是什么?(Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的縮寫)。第一個字母A,即asynchronous,中文為“異步”,沒有實現異步,僅僅用JavaScript寫一些客戶端腳本,這不算Ajax的;不喜歡往自己臉上貼金,不是就是不是。
你可以認為我在用Ajax,因為我的確用到了其中的一些技術,如JavaScript、XML與DOM;但嚴格來說,我這些還不算Ajax,因為,到現在為此,我這個管理界面,并沒有用到Ajax的核心技術,即xmlHttpReques對象,我所有的數據讀取都是同步讀取,并不是異步,這也是為什么有些朋友反應網頁打開太慢的原因。
我不清楚,還有多少人對Ajax存在誤解;認為寫幾行javascript就是Ajax了;其實我也對Ajax存在“誤解”,因為我常說我自己不會Ajax(我是寫C#的),充其量我只是會腳本罷了;而別人總說我是Ajax高手,到底是誰誤解誰,我也說不清楚了。
我最早聽說Ajax這個詞是在06年初,一個同學在QQ發過來,問我“聽沒有聽說過Ajax?”;我說沒有,然后,我問另一個朋友,他說,他聽說過!好家伙,新名詞,別人都不敢問你會不會,聽說過的都算高人。
06年下半年時,開始用網上開源的Ajax框架來開發asp.net了,相關Ajax文章也看不過不少了;大致明白是咋回事兒了,無非就是異步讀取嗎,xmlHttpRequest也不是存在一天兩天了,早就有了,我也早就用過,只是用得少,也就知道有這個東西而已,誰知道現如今,老蘿卜當人參賣,它成了主角。后來,就沒有怎么學過Ajax,開發中用到了,也是用封裝好的框架,我是用MagicAjax;
雖然沒有去學Ajax,但并不意味著我不會,熟悉Ajax的人應該都知道,Ajax的核心雖然是xmlHttpReques對象,但是它太簡單了,并沒有什么可研究的,真正難點在JavaScript上;這種以前不招人待見的網頁腳本,現在成了b/s軟件的一個重頭戲;Ajax中的所有東西,不管是異步讀取還是分析數據,都得通過它來操作。而我恰恰JavaScript比較熟,恐怕這也是為什么別人說我Ajax學得好的原因吧,說老實話,對于JavaScript也不熟,我只是對腳本語言比較熟悉罷了。
我從事過兩年的FlashAs腳本開發,FlashAs與JavaScript有極大的相似之處,都是遵行ECMAScipt腳本語言標準的(As后來偏離標準較多),這也是我學JavaScript沒有費什么勁的原因;以至于別人誤認為我Ajax學得好,其實,沒有直接關系;
說來話長,扯得有些遠了。
Ajax只是個名詞,不代表什么,它實現了頁面無需刷新,便可更新數據的功能,提高了用戶體驗;那我們假設,如果又有一種新的方法,可以讓用戶體驗更爽,Ajax還會不會存在呢?答案是,“Ajax”不會,Ajax會!
消失的只是“Ajax”這個名詞,但它的相關技術是不會淘汰的,JavaScript暫時不會淘汰吧,XML更不會淘汰,要操作XML就要用DOM,也不會淘汰;但是,人們會搞一種更有利于開發的組合方法來提高用戶體驗,提高開發速度,或者,再加上某個別的新技術,那么一組合,然后,換一個更炫的名字,閃亮登場;
Ajax不就是這樣出現的嗎,Ajax本身就是一個各項技術名稱的組合詞,它包括JavaScript、DOM、XML、xmlHttpRequest等等;合一起叫Ajax;那說不定以后,另外各種技術再一組合,不就又出一新詞。可見,淘汰的只是名詞,而不是技術,打好基礎才是重要的。如果上述各項技術都很熟的話,Ajax不Ajax的,有什么關系呢?靈活運用才是最重要的,就算加一兩個新技術,也不會太吃力。
當年我搞FlashAs時,有個名詞叫RIA,就是富英特網;通過使用Flash,來實現無刷新的網站;也是為了提高用戶體驗,Flash效果可以做得很炫,比Ajax強太多了,也曾風行一時。但是,Flash RIA解決方案也存在先天問題,以至于Ajax后來居上,對我來說,好像沒有什么本質的影響。并沒有因為從一種環境換到另一種環境而不適應,都是在用腳本編程,As、Js各有千秋,但也大同小異。
b/s軟件越來越普及,軟件的表示層開發也顯得越來越重要了,表示層的開發自然要做得人機交互更好,界面更漂亮,要想實現更好的用戶體驗,不管是RIA還是Ajax,都是要考濾的,微軟也在計劃下一代的產品,很多人很期待,希望功能更強,更炫,但是,不管再變化,萬變不離其宗,微軟傻瓜式的開發方式,只會讓我們墮落。
唉,又扯遠了;
本來是說一下自己的Ajax歷程的,說來說去,其實我沒有真正搞過Ajax;我的空間也沒有Ajax的欄目,只有JavaScript與XML欄目;
最后說一下,我到現在,還不會用Ajax.net,聽說它很簡單,拖拉拽就可以搞定,一直沒有時間去學,呵呵;
明天的任務是把那個管理界面實現異步數據讀取,終于真正的搞一次Ajax了。
浙公網安備 33010602011771號