当前位置: 首页 > 面试题库 >

HTML5本地存储后备解决方案

佴德曜
2023-03-14
问题内容

我正在寻找可以localStorage在不具有本机支持的浏览器上模拟的javascript库和代码。

基本上,我想对我的网站进行编码以localStorage用于存储数据,并且知道它仍然可以在本身不支持它的浏览器上运行。这意味着库将检测是否window.localStorage存在,并在存在时使用它。如果不存在,那么它将通过在window.localStorage名称空间中创建自己的实现来创建某种本地存储的后备方法。

到目前为止,我已经找到了以下解决方案:

  1. 简单的sessionStorage实现。
  2. 使用cookie的实现(对此想法不满意)。
  3. Dojo的dojox.storage,但这是它自己的事情,不是真正的后备。

我知道Flash和Silverlight也可以用于本地存储,但是在将它们用作标准HTML5localStorage的后备时并没有发现任何东西。也许Google Gears也具有此功能?

请分享您发现的所有相关库,资源或代码段!我对纯JavaScript或基于jquery的解决方案特别感兴趣,但我猜这不太可能。


问题答案:

我使用PersistJS(github存储库),它对您的代码无缝且透明地处理客户端存储。您使用单个API并获得对以下后端的支持:

  • flash:Flash 8永久存储。
  • gears:基于Google Gears的持久存储。
  • localstorage:HTML5草案存储。
  • whatwg_db:HTML5草案数据库存储。
  • globalstorage:HTML5草案存储(旧规范)。
  • ie:Internet Explorer用户数据行为。
  • cookie:基于cookie的持久性存储。

可以禁用其中任何一个,例如,如果您不想使用cookie。有了这个库,您将在IE5.5+,Firefox2.0+,Safari3.1+和Chrome中获得本地客户端存储支持;以及浏览器具有Flash或Gears的插件辅助支持。如果启用cookie,它将在所有功能中起作用(但限于4kB)。



 类似资料:
  • 问题内容: 除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)? 问题答案: localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有区别。 也就是说,存储在中的数据将 一直保留到明确删除为止 。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。 对于, 更改仅在每个选项卡上可用

  • localStorage 本地存储 存储针对QQ帐号隔离 数据存储于本地文件中。游戏结束后不会被删除 函数 key( index) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.localStorage.key(0); getItem( key) 获取ke

  • 本文向大家介绍Android本地存储SharedPreferences详解,包括了Android本地存储SharedPreferences详解的使用技巧和注意事项,需要的朋友参考一下 Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/<package_name> /shared_prefs 文件夹下,以X

  • 问题内容: 在localStorage中存储的数据(作为HTML5中DOM存储的一部分)可以使用多长时间?我可以为放入localStorage的数据设置过期时间吗? 问题答案: 无法指定到期时间。这完全取决于用户。 当然,您的应用程序存储在客户端上的某些内容以后可能不会出现。用户可以显式摆脱本地存储,否则浏览器可能会遇到空间问题。进行防御性编程是件好事。但是,一般情况下,根据该单词的一些实际定义,

  • 本文向大家介绍LocalStorage本地存储在HTML5中有什么用途?相关面试题,主要包含被问及LocalStorage本地存储在HTML5中有什么用途?时的应答技巧和注意事项,需要的朋友参考一下 LocalStores 本地存储就是一个轻量级的sqllite数据库。可以在客户端本地存储数据,用于在断开网络连接的情况下读取本地缓存cookies,LocalStores可以将数据长期保存在客户端,

  • 问题内容: 如何在Rails 3中存储和处理网站用户的地理位置(经度和纬度),以便它检查是否在每个页面请求中我们已经在该用户的会话中保存了这些详细信息(如果我们正在不保存详细信息,那么我们应该从浏览器中请求用户的位置,然后将这些详细信息存储在会话中)? 问题答案: 根据您的要求,我会说您实际上并不需要ajax,因为大多数处理将使用JS(要求用户访问其位置,解析响应等)完成,因此我将使用JS设置一个