8

在各种可用的 Web 存储系统上是否有像包装 API 抽象这样的跨浏览器 jquery ?

4

5 回答 5

9

localStorage(又名“网络存储”)无法与 Web SQL 或 IndexedDB 相比,因为它在空间上受到严格限制并且是同步的(阅读:冻结浏览器的 UI,因为它确实很糟糕)。因此,我在其余帖子中忽略了 localStorage。但是如果你只需要一点存储空间,你可以直接使用 localStorage,因为它得到了相当广泛的支持,或者像其他帖子建议的那样使用草地椅,这得到了更广泛的支持。

所以我们只剩下 Web SQL 和 IndexedDB。无论好坏,Web SQL 都是一种死胡同。没有人在研究规范,没有人在研究新的实现。IE 和 Firefox 永远不会支持它,并且它在其他浏览器中已被弃用,最终可能会被删除。但是目前有一些浏览器支持它(Chrome、Opera、Safari),所以理论上它可以在库中使用,如果其他不支持 Web SQL 的浏览器有替代方案的话。

不幸的是,IndexedDB 在浏览器中没有得到很好的支持。Firefox 有很好的实现;Chrome 有点落后,但正在迎头赶上。您可以使用这个 IndexedDB Polyfill在任何支持 Web SQL 的浏览器中获得 IndexedDB 支持,理论上应该涵盖除 IE 之外的所有最近/流行的浏览器。

啊,IE。它总是归结为 IE,不是吗?事实上,在 IE 中没有像 IndexedDB 或 Web SQL 这样的本地存储的合理方法。IE 10 将支持 IndexedDB。每当人们停止使用 IE 9 及更低版本时,IndexedDB 可能会在所有其他浏览器中获得极好的支持,因此您将能够使用 IndexedDB API 或在它之上的一些库。在那之前……好吧,你运气不好。

于 2012-07-29T05:24:51.783 回答
7

支持多种存储实现的包装器

袋装数据库

本地饲料

草坪椅

YDN-数据库

基于 WebSQL 的 IndexedDB polyfill

索引数据库垫片

IndexedDB Polyfill

如果您只想存储少量数据,任何这些或更简单的仅用于 Web 存储的包装器就足够了。如果您需要更多存储空间,则需要放弃 Web 存储的想法并使用 indexedDB polyfill。但是这种 polyfills 的缺点是索引可能并不总是很好地工作,尤其是在使用多个索引时,并且在没有原生 indexedDB (iOS) 的移动浏览器中性能可能会很差。如果索引很重要,Pouch DB 看起来是一个很好的解决方案,它的二级索引。如果 iOS 不是目标,您可以继续使用本机索引数据库,因为它在苹果园之外的几乎所有其他地方都受支持。


网络存储

模式: 键值对 大小: 2.5MB – 5MB 可扩展性: 大型/复杂数据的 性能不佳 搜索没有索引或其他方式的搜索性能不佳 索引: 没有可用的索引 兼容性: 在包括移动浏览器在内的所有现代浏览器中 均受支持未来证明: 支持应该保持很长时间。该规范与 w3c 是分开的,并且作为自己的规范存在。W3c 可能会用索引数据库做所有事情


WebSQL

模式: 关系数据库 大小: 默认 ~5MB 要求用户扩展至 10、50、100、500 MB 可扩展性: 使用关系数据库概念,因此可以很好地扩展。与 Web 存储相比,大数据的性能良好。 搜索: RDBMS 中的索引具有良好的搜索性能。 索引: RDBMS 中可用的索引 兼容性: 支持基于 webkit 的浏览器,包括 Chrome、Safari 和 iOS Safari 等移动浏览器。Microsoft 和 Firefox 不支持,并决定从不支持,因为规范依赖于非标准 SQL lite。同时,Web SQL 恰好是 iOS 设备和 Safari 中唯一可用的可扩展解决方案。 未来证明: Web SQL 不是面向未来的。自 2011 年起,该规范不再被维护和弃用。此外,除了 Apple 之外的大多数供应商已经开始转向索引数据库。


索引数据库

模式: 索引表系统 大小: 默认 ~5-50MB 要求用户扩展。 可扩展性: 每个数据库可以有尽可能多的数据库和存储。可以轻松缩放。 搜索:基于索引的技术具有非常好的搜索性能。 索引: 基于索引进行设计。 兼容性: 在 Chrome、Firefox、IE 10 等现代浏览器中受支持。缺少的供应商只是苹果。Apple 仍然没有在 Safari 和 iOS Safari 上实现索引数据库。 未来证明: 索引数据库规范是专为客户端存储设计的 Web 持久性的当前方向。这应该很快就会淘汰 Web SQL 和本地存储,因为它具有这两个规范的强大功能。

于 2014-05-19T02:06:17.803 回答
6

Store.js应该适合你。它在可用的地方使用 localStorage。对于 IE6 和 IE7 它,使用 userData 行为。

它的 API 很好很简单:

store.set('myage', 24)
store.get('myage') === 24
于 2013-01-19T04:28:34.797 回答
2

有草坪椅......我已经建议过几次但没有长时间使用它:

http://brian.io/lawnchair/

于 2012-07-28T23:53:22.953 回答
2

有,YDN-DB,它为 IndexedDB、WebSQL 和 localStorage 提供跨浏览器 API。它也有 JQuery 插件。

于 2012-09-20T06:10:00.287 回答