隨著Web 2.0 被越來越多的人所瞭解和接受,做為其重要的組成部分,Ajax技術也正被越來越的人所應用。然而其複雜的開發過程和低下的開發效率,使像我這樣沒有多少傳統Web開發經驗的程式員望而卻步。幸好,各種各樣的Ajax開發架構的出現,大大降低的開發門檻,並且提高了開發效率。自去年5月份瞭解Ajax以來,也先後試用Ajax.net,MagicAjax,Atlas這三種Ajax架構。由於各種因素,真正廣泛應用到項目中的是MagicAjax,隨著Atlas的日趨成熟,目前也在逐步轉到Atlas。
Ajax.net出現得比較早,而且是開原始碼的,在早期的使用應該比較多。但是對程式員來說,仍然要寫比較多的JS代碼,使用起來不是很方便。隨後,MagicAjax的出現,轉移的很多人的視線,它的功能就像它的名字一樣,一個Panel就能神奇地讓包含在Panel裡的控制項執行事件不重新整理頁面,但是真正應該起來,才發現它的效率真的是很大的問題。Atlas做為微軟為.NET 2.0 量身訂做的Ajax開發包,有它的天生優勢,目前已經發布了3個CTP版本了,之前也一直不敢將它使用到項目中。最近下決心使用了1月份的CTP版,感覺還是比較好的,它的功能非常強大(無重新整理拖拽控制項並與Profile結合使用儲存到資料庫等),提供了好幾個擴充的Server Control,並且也可以很容易使用用戶端控制項,實現完全的用戶端代碼執行,通過JS代碼可以很簡單訪問Web Service。也提供了類似MagicAjax的UpdatePanel控制項,並且功能更加強大,在Panel裡執行的伺服器事件雖然頁面沒有重新整理,但仍可以使用Request,Response等環境對象(在MagicAjax是不行的),可能會有人認為它的JS檔案很大,每次下載會影響速度,但從目前的使用方式來看,效率比較MagicAjax高了很多,JS檔案也不是每次請求都去下載的。雖然還有一些BUG,但已經可以初步應用了。atlas目前的社區交流還是集中在ww.asp.net論壇和國外的一些Blog上(atlas.asp.net上有相關連結),這裡精選一下,Flier's Sky 的Blog也正在推出Atlas實現機制分析的文章。
Ajax對的用戶端環境要求在網上卻沒有找到很滿意的答案。儘管ajax技術大部分使用到了XmlHttp對象,通過非同步訪問實現無重新整理。而IE5以上就支援xmlHttp對象。今天在windows 98 ,IE5.5 的環境下測試訪問幾個Ajax應用,卻發現沒有一個能夠很好工作的。訪問Gmail,根本就進不了收件匣,到“正在載入”就死在那邊了,訪問Ajax.net的Demo,出現指令碼錯誤,代碼根本就沒法執行。訪問MagicAjax的Demo,代碼可以正常執行,但要重新整理頁面,也會出現指令碼錯誤。訪問Atlas用UpdatePanel包含的級聯下拉框,同樣也是可以正常運行,但是頁面也是要重新整理,也提示指令碼出錯。但是用js直接調用Web Service的功能也是沒有辦法使用。所以Ajax對用戶端的要求也是比較高。