文章

搶攻離線運作之地

FineTune
(Apollo 的應用之一 FineTune,使用感覺良好,可是好像沒得設定代理?)

現在很多新的 Web 2.0 服務出現,令我們的生活更貼近網絡世界。通過 Ajax 技術,網絡的服務表現得更像桌面軟件,我們也開始對這些新式 Ajax 應用漸漸熟識。不過用得久了,自然就會感到當中的缺點。除了大量使用 javascript 建構的 Rich UI 和 Ajax 傳輸所產生的遲緩感外,服務本身「在線」特色也成為其一缺點:我們必需時時刻刻都連到網絡上,這些服務才可以正常運作。因此,在近來的 Ajax 討論的其一焦點,是如何可以落實離線運作 (offline mode)。

對於現在一些一直在線的電腦用家而言,離線運作可能沒有甚麼用。但對於一些如「行動派」來說,未必能夠隨時存取網絡,可離線運作便顯得相對重要了。例如電郵客戶端、行事曆、行動清單等等,其實都可以離線運作,需要時才連接上去伺服器。

要支持離線運作,就必需於瀏覽器支持儲存資料。過去,我們的網絡程式,大多只會用 cookie 來儲存少量的如個人、用戶習慣等資料。但因為人們開始研究離線運作的關係,現在已有如 dojo.storage 這些 library 嘗試去做存取控制如 cookie, flash shared object, activeX object 等等這些「可用之地」 (如沒記錯,dojo 只是實作了 flash)。另外, WHATWG 所訂的 Web Application 規格 (Working Draft) 裏,也有訂明瀏覽器可提供 Offline Persistent Storage 的功能以供開發者使用。 Firefox 3.0 也將會支持部份 Web Application 規格,提供 online/offline 事件的支持。

近兩天,頗受注目的 Adobe 的 Apollo 推出 Alpha 試用,它是一個誇平台的運行環境 (Runtime),類似於我們運行 Java 程式時所需要安裝的 Runtime。Apollo 的特點是「讓開發者可以用他們熟悉的現有技術,如 Flash, Flex, HTML, Javascript, Ajax,來開發桌面上的 Rich Internet Applications」。如果大家有觀看過其 eBay Demo ,就會知道 Apollo 的程式將如何可以令到在線服務桌面化。上面提到瀏覽器的離線運作,固然之能夠實現,Apollo 程式更可以直接存取電腦上的資料,沒有了瀏覽器的限制。操作介面更可走出瀏覽器的框框,更貼近桌面軟件。

Apollo 應用會不會對 Firefox 想成為「 資訊中介 」的角式做作威脅呢?日後的 RIAs 會是只運行於一個瀏覽器平台上,還是一個一個獨立而緊密的網絡化桌面程式?雖然有很多讚好的聲音,但也有人指出 Apollo 不過只是另一個封閉式的環境而已,發展上不夠開放。能夠成功地實作離線運作功能又會否是關鍵之一?

Apollo 的確令人眼前一亮,日後發展也非同小可,會帶來不少新的價值。至於 Firefox 如何走出瀏覽器天生的限制,與網絡資料結構的轉型 (如 Microformat),將會影響其能否成為資訊中介平台的關鍵。對我來說,我還是比較喜 Firefox 的目標。

回應

  1. 個人比較喜歡開放式的 RIAs Development,封閉環境始終對發展不利。
    不過亦樂於見 Apollo 的推出,為 RIA/Desktop App 帶來新的景況

*