讓JavaScript拯救HTML5的離線存儲(chǔ)
有人可能會(huì)說(shuō),離線Web 毫無(wú)意義,你得到的只是一個(gè)蹩腳的桌面程序,在 wi-fi, 3G 無(wú)處不在的今天,我們大部分時(shí)間都是在線的,這雖然沒(méi)錯(cuò),但我們當(dāng)中那些已經(jīng)對(duì)各種 Web 應(yīng)用,如 email, 在線新聞以及 Twitter 一刻不可或缺的人來(lái)說(shuō),離線 Web 是非常重要的。
不過(guò)問(wèn)題總是有的,HTML5 Web 存儲(chǔ)細(xì)則中牽扯到很復(fù)雜的問(wèn)題,SQLite。那些需要編寫離線 Web 程序的人需要編寫 SQL 代碼,SQLite沒(méi)有錯(cuò),但它是 SQL 的一個(gè)變種,和標(biāo)準(zhǔn) SQL 有些差別,另外,SQLite 并不屬于 W3C,它的所有者很有可能某一天改變它的接口,這會(huì)導(dǎo)致那些已經(jīng)寫就的 Web 程序必須重新編寫。
是否有更好的方法?Mozilla 實(shí)驗(yàn)室的Atul Varma 最近發(fā)布了一篇博客文章,提供了一種替代方案。Varma 正在研究 CouchDB 的一個(gè)實(shí)驗(yàn)版本,在瀏覽器中,將該數(shù)據(jù)庫(kù)的語(yǔ)義用 JavaScript 實(shí)現(xiàn)。最終,我們或許可以直接使用 JavaScript 實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢,消除HTML5 在這方面的問(wèn)題。
針對(duì)這篇文章,Mozilla Fennec 移動(dòng)瀏覽器團(tuán)隊(duì)的 Mark Finkle 在評(píng)論中表示,這個(gè)方案回避了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)后臺(tái)中更主要的問(wèn)題,***讓localStorage/globalStorage 成為標(biāo)準(zhǔn),讓標(biāo)準(zhǔn)保留在底層,他在自己的一篇博客文章中指出,應(yīng)當(dāng)建立一個(gè) JavaScript 庫(kù),就像現(xiàn)有的很多 JavaScript 庫(kù)可以操作網(wǎng)頁(yè)元素一樣,也應(yīng)當(dāng)有個(gè) JavaScript 庫(kù)用來(lái)操作離線 Web 存儲(chǔ)數(shù)據(jù)。
這種方法表面上看很復(fù)雜,但會(huì)為開(kāi)發(fā)者帶來(lái)靈活,當(dāng) Web 無(wú)所不能的時(shí)候,我們的機(jī)會(huì)會(huì)更多。
本文國(guó)際來(lái)源:http://www.webmonkey.com/blog/Why_JavaScript_Will_Save_Offline_Storage_in_HTML_5
【編輯推薦】