【发布时间】:2011-06-09 04:47:37
【问题描述】:
我正在寻找可以在没有本机支持的浏览器上模拟 localStorage 的 javascript 库和代码。
基本上,我想使用localStorage 对我的网站进行编码来存储数据,并且知道它仍然可以在本身不支持它的浏览器上运行。这意味着库将检测window.localStorage 是否存在并在存在时使用它。如果它不存在,那么它将通过在window.localStorage 命名空间中创建自己的实现来创建某种本地存储的后备方法。
到目前为止,我已经找到了以下解决方案:
- 简单的sessionStorage 实现。
- 一个实现that uses cookies(对这个想法不感兴趣)。
- Dojo 的 dojox.storage,但它是它自己的东西,而不是真正的后备。
我知道 Flash 和 Silverlight 也可用于本地存储,但没有发现任何关于将它们用作标准 HTML5 localStorage 的备用方案。也许 Google Gears 也有这个功能?
请分享您找到的任何相关库、资源或代码 sn-ps!我对纯 javascript 或基于 jquery 的解决方案特别感兴趣,但我猜这不太可能。
【问题讨论】:
-
sessionStorage 和 localStorage 都是 Web 存储规范 (dev.w3.org/html5/webstorage) 的一部分。唯一的区别是浏览器将保留数据的时间。我猜你不会找到一个有一个但没有另一个的实现(但我不是 100% 确定)
-
值得一提的是,Gears 是 officially depriciated last February——我不会在上面构建任何东西。
-
@rlovtang:谢谢,我知道会话和本地存储之间的区别。根据 24ways.org 文章(有问题的第一个链接,解决方案 #1),Chrome 仅支持 localStorage 而不是 sessionStorage。也许情况不再如此,因为那篇文章是不久前写的。
-
@josh3736:是的,我个人希望避免使用 cookie 和齿轮。我当然不会构建任何依赖它的东西,但如果它是安装它的人的后备存储机制,并且我没有直接对其进行编码,它可以使用。
-
所以我实际上错了 :) 不知道 Chrome 曾经支持 localStorage 但不支持 sessionStorage。 Chrome 现在至少支持两者。
标签: javascript jquery flash html local-storage