準備以後部落格在這安家了,csdn給人的感覺是太浮躁,給人的學術氛圍不夠,而且什麼技術都有給
人感覺很雜亂 ,還是cnblogs不錯 主要以.net 為主,技術含量很好,今天來這裡第一天,特意和大家
分享一個自認為很不錯的ajax的架構XCallback,它是對callback的擴充 ,筆者曾經用過好幾款ajax框
架,最早用UpdatePanel 後來處於效能的考慮決定廢棄,廢棄原因有4:
1.網頁首次要載入310kb的axd檔案,佔網速也佔用瀏覽器的載入時間。
2.效率很低,違背了ajax的初衷,回傳了viewstate和所有控制項的值
3.不夠靈活,面對複雜而多變的項目開發,不是用幾個拖拽就能解決問題,編程仍然是解決問題的核心
,但是你想在他強加的思想下做出改變又是何等困難 。
4.部署也不易,也許有人會說,把那兩個程式集傳到bin下就行了 ,可是無論我怎麼整,ajax效果總是
失效,也許這與ajax工具包早期版本有關
這是我放棄UpdatePanel的原因
後來聽同學說ajaxpro也不錯,ok 就用了 ,對他這種簡單的用戶端調用伺服器端的方法感覺很驚奇,想
看看ajaxpro的源碼,可是reflector進入了更新的死路,更新了N次都沒成 [ 這裡的各位如果誰的
reflector能用 請給我發一個chenxumi@hotmail.com ] 看ajaxpro的風格潛意識裡猜測好像使用了反射
技術。用了一段時間,但是面對實際問題時,最終還是棄用,棄用原因有:
1、ajaxpro會產生4個ashx檔案,感覺它應該產生1個檔案比較好,因為大家都知道IIS有並發串連數的限
制,尤其是虛擬機器主機更是規定在一定範圍內[記得150元的主機大多規定在200個並發串連數],而且ashx
檔案和伺服器的串連時效很長,讓我覺得ajaxpro並不完美[也許編程珠璣看多了,要求得過於苛刻,雖
然我們現在的軟體環境和硬體環境已經不像以前的程式員那麼艱苦了,但是對於web這種講究高效能的程
序還是較真要好]
2、我曾跟蹤調試ajaxpro發送資料的過程,感覺的有些慢,只是感覺而已,也沒仔細研究具體代碼,只
是自己一面之詞,不知大家有沒有這種感覺,估計這是個有爭議的地方
3、ajaxpro是小巧吸引了我 ,至今還記得23kb小巧精緻 正合吾心,可是當我要面對動態載入一些資料
控制項時,他卻根本做不到, 通過反射機制的ajaxpro反過去執行類裡的特定控制項可不是容易事,所以即
使在partial裡用ajaxpro訪問cookie也只能這樣HttpContext.Current.Request.Cookies
["name"].Value.ToString();得到,ajaxpro現在的確也支援dataset這些複雜的資料類型,今天我也訪
問過他們網站(http://www.ajaxpro.info),也有很多對應的例子,可是實現dataset可不是簡單事,服
務器端代碼的編寫,用戶端代碼的編寫,都是複雜的繁雜的而且有些技術含量的東西,不利於快速的項
目開發,等到了ajaxpro.2 的時候程式集已經增加到140kb了 ,我懷疑是不是內建了js庫呢,或是我下
了山寨版的ajaxpro ?
終於ajaxpro廢棄了
第三款ajax架構JQuery都說小巧優雅,於是用了,可是失望,在純ajax方面比ajaxpro好不了多少 ,
120kb的載入量也是我不能忍受的
第四款也是剛看到了,原來還有個Anthem.net 驚鴻一瞥了一下 ,失望,又是個模板式的東東,不過據
反映在伺服器端方法的執行上和載入量上有優勢 ,這點讓我心動。
但是事實上還有更好的一款ajax架構,他幾乎具備了以上的所有優點和不具備以上的所有缺點
他就是XCallback 是對callback的擴充
他很簡單很優雅很高效,通過return的分割就完美實現了在一個方法裡共存ajax調用前的方法和資料返
回後執行的方法,這樣有很多優點 ,大家看看下面兩幅圖 ,看看是不是簡單,如果覺得ajax實現的很
簡單請繼續,如果還是覺得麻煩 ,沒什麼價值,也不強求你看下去了
對應源碼和線上執行個體都在這裡
http://chenxumi1.vhost015.cn/
這是前台頁面,資料從伺服器返回後將執行return之後的函數體
這是後台頁面,只需初始化InitAjaxStyle()就可完成伺服器端函數調用