看了一下Ajax,這個東西看起來的確有點讓人激動,響應靈敏的web UI,局部重新整理而不是整體重新整理......
不過看完之後思考了一下,這個東西是不是真的是我所需要的?非同步固然可以讓ui反應迅速一些,但是我感覺有點換湯不換藥的味道,就算請求非同步了, 但是真正使用者所需要的資料還是要等到伺服器處理完才能傳回來,這和同步處理的使用者等待一個請求有何區別?OK,你可以說,在使用者等待的這段時間內,他可以繼續做 一些操作,沒錯,這的確有些吸引人,但是如果使用者在伺服器尚未處理完的時候就跳轉了頁面,那麼,伺服器在完成請求後是否還會callback那個我們事先 定義的function呢?如果是,那可能會出錯,因為這個頁面已經跳轉了;如果不是,那非同步就失去意義了。
技術永遠應該跟隨應用走,應用的需求決定一切。電腦軟體開發,特別是基於web的技術實在太多太多了,有點累了,就好像當初覺得struts不 錯,但是付出的代價是為了寫一個很簡單的功能就要coding一堆的類和xml檔案以及jsp檔案,在大多數應用中,有這個必要嗎?我的感覺 是,struts中唯一我用的最多的就是struts對介面文字的國際化的 framework,我們可以將所有的string都放到一個properties中,這樣就容易實現國際化,其實就算是這一塊也很容易實現,自己寫一個 class,在web應用啟動的時候將所有的string都裝載到記憶體,然後放到application的上下文環境中,jsp中想用的時候直接引用一下 就OK了,我看過struts的源碼,他就是這麼做的。再回到Ajax,我們寫的web應用中,到底有多少需要非同步呢?
可能和我的工作範圍有關係,我寫的web應用中沒有一個是網站類型的,呵呵,一般都是一個專用的軟體,只不過介面是web的而已,所以,現在想起 來,與其花費大量的時間和精力學習、測試、移植Ajax到我的應用程式中,不如把這份時間放到學習css、DOM、JavaScript,學習如何製作更漂 亮、更具互動性的web介面來的實際些。