在 Internet 連接無處不在的今天,我們忽然有了另外一個需求,離線 Web。Gmail, Google Reader, Zoho 這些優秀的 Web 應用都支持離線使用,這歸功於 Google Gears。然而真正的離線 Web 要靠 HTML 5,這個未來的 Web 語言明星將為 Web 的離線存儲制定一套標准,W3C已經發布 HTML5 離線存儲細則。
有人可能會說,離線 Web 毫無意義,你得到的只是一個蹩腳的桌面程序,在 wi-fi, 3G 無處不在的今天,我們大部分時間都是在線的,這雖然沒錯,但我們當中那些已經對各種 Web 應用,如 email, 在線新聞以及 Twitter 一刻不可或缺的人來說,離線 Web 是非常重要的。
不過問題總是有的,HTML5 Web 存儲細則中牽扯到很復雜的問題,SQLite。 那些需要編寫離線 Web 程序的人需要編寫 SQL 代碼,SQLite沒有錯,但它是 SQL 的一個變種,和標准 SQL 有些差別,另外,SQLite 並不屬於 W3C,它的所有者很有可能某一天改變它的接口,這會導致那些已經寫就的 Web 程序必須重新編寫。
是否有更好的方法?Mozilla 實驗室的 Atul Varma 最近發布了一篇博客文章,提供了一種替代方案。Varma 正在研究 CouchDB 的一個實驗版本,在浏覽器中,將該數據庫的語義用 JavaScript 實現。最終,我們或許可以直接使用 JavaScript 實現數據庫查詢,消除 HTML5 在這方面的問題。
針對這篇文章,Mozilla Fennec 移動浏覽器團隊的 Mark Finkle 在評論中表示,這個方案回避了標准數據庫後台中更主要的問題,最好讓 localStorage/globalStorage 成為標准,讓標准保留在底層,他在自己的一篇博客文章中指出,應當建立一個 JavaScript 庫,就像現有的很多 JavaScript 庫可以操作網頁元素一樣,也應當有個 JavaScript 庫用來操作離線 Web 存儲數據。
這種方法表面上看很復雜,但會為開發者帶來靈活,當 Web 無所不能的時候,我們的機會會更多。