這二年在Web界引起軒然大波的Ajax,雖然說穿了其內涵不過就是JavaScript的應用,以往也有前輩在許多年前就已經運用這項技術了~然而,在Ajax這個名詞出來以後,這項技術的發展,同時帶動許多著名framework的出現:PrototypeYUI以及目前我們公司使用的jQuery等;在這些好用的框架下,許多以往必須經由繁複程式碼才得以實現的功能,都可以利用函數呼叫的方式輕鬆呈現。

也就因為Ajax的大流行,這幾年有愈來愈多人想把所有本來在單機上執行的桌面程式,全部搬到Web上。桌面程式與網頁程式最大的差別就在,桌面程式與資料庫的連線是一直存在的,但是網頁程式則因為先天上http設計的關係,必須是建立在「客戶端發出請求,伺服端才得以回應」的條件下,才得以與資料庫建立連線;當然,神奇如Ajax也受此制約。這造成了一個問題,如果客戶端想要與伺服端同步更新資料,那應該怎麼辦呢?最常見的方式是Polling,也就是每隔一段時間由客戶端送出請求,看伺服端是否有新的資料回應;只要Polling的間隔時間夠短,客戶端就會有即時更新的錯覺。然而如果資料沒有更新,一來一往無謂的訊息傳送不但浪費頻寬,對伺服端也容易造成龐大負擔。

而Server Push就在需要即時更新資料的需求下出現,早期CGI的網路聊天室就是利用這種方式;如果再結合Ajax,則可以做到背景更新頁面的即時處理。Dojo的作者 Alex Russell 在 2006-03-03 發表的 Comet: Low Latency Data for the Browser,首次提出「Comet」這個新名詞!關於Comet詳細的介紹,可以參考Lighty RoR的文章:Comet For Ruby on Rails and Mongrel淺談 Comet PUSH Server 架構

我覺得,此理論的實現,確實可以讓桌面程式網頁化更輕鬆愉快!但是,目前似乎並沒有特別受到Web界的注意...所以,一切還是等網路前輩們的努力推廣吧~小輩的我就先暫時觀望吧^^|||
arrow
arrow
    文章標籤
    Augmented Reality AR
    全站熱搜

    danielhuang030 發表在 痞客邦 留言(0) 人氣()