在 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 程序必须重新编写。
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)是否有更好的方法?Mozilla 实验室的 Atul Varma 最近发布了一篇博客文章,提供了一种替代方案。Varma 正在研究 CouchDB 的一个实验版本,在浏览器中,将该数据库的语义用 JavaScript 实现。最终,我们或许可以直接使用 JavaScript 实现数据库查询,消除 HTML5 在这方面的问题。
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)针对这篇文章,Mozilla Fennec 移动浏览器团队的 Mark Finkle 在评论中表示,这个方案回避了标准数据库后台中更主要的问题,最好让 localStorage/globalStorage 成为标准,让标准保留在底层,他在自己的一篇博客文章中指出,应当建立一个 JavaScript 库,就像现有的很多 JavaScript 库可以操作网页元素一样,也应当有个 JavaScript 库用来操作离线 Web 存储数据。
这种方法表面上看很复杂,但会为开发者带来灵活,当 Web 无所不能的时候,我们的机会会更多。