Firefox 4 中的 IndexedDB

这篇文章来自 Ben Turner 的客座文章,他是 Firefox IndexedDB 开发者之一。

Mozilla 很高兴宣布在即将发布的 Firefox 4 Beta 9 和最新的 trunk nightly 版本中支持 IndexedDB。IndexedDB 允许 Web 应用将大量数据存储在您的本地系统中(当然需要您的明确许可),以便之后快速离线检索。我们希望将来 Web 邮件、电视节目单和在线购物历史记录能够像在线一样方便地离线访问。

有兴趣使用此新功能的 Web 开发人员,建议阅读 IndexedDB 入门,该入门教程位于 Mozilla 开发者网络 上。该入门教程试图简化规范中的某些复杂性,以讨论最重要的概念并提供简单的示例。当然,真正的硬核开发者可以阅读 完整的规范

请记住,IndexedDB 是一款全新的技术,并非所有浏览器都一致支持,如果您遇到任何与规范不符的行为,请提交 bug 报告!


11 条评论

  1. Josh

    这些数据库是否同步到 Firefox Sync?如果没有,未来是否有计划这样做?

    2011 年 1 月 12 日 下午 11:49

  2. oxdef

    为什么不使用 HTML5 的 Web SQL 数据库?

    2011 年 1 月 12 日 下午 2:37

  3. Janet Swisher

    @oxdef: 这篇 关于数据库 API 的早期文章 回答了这个问题。虽然 Firefox 4:IndexedDB 的早期演练 中的代码现在已经过时,但它可以让我们了解两种方法的区别。

    2011 年 1 月 12 日 下午 2:55

  4. treebat

    oxdef,这是出于宗教和琐碎的原因。不过,这已经尘埃落定,也许对于想要快速获得功能强大的跨平台客户端数据库的开发人员来说,编写和/或使用抽象 IndexedDB 和 Web SQL 数据库的库是一个明智的选择。

    2011 年 1 月 12 日 下午 10:52

  5. 匿名

    它可以被禁用,或者更好的是,删除吗?我不想使用另一个持久性层,除了 cookie 存储!

    2011 年 1 月 13 日 下午 11:48

    1. alexleduc

      如果您使用的是私人浏览模式,该功能将被禁用。

      2011 年 1 月 18 日 下午 1:14

  6. alexleduc

    我不理解使用它和本地/全局存储之间的区别。这些不是为了让离线 Web 应用存储数据而设计的吗?难道拥有 IndexedDB 和这些 API 不会导致出现两种 API 做同样事情的情况吗?

    2011 年 1 月 18 日 下午 1:25

    1. Dan

      区别在于存储相关数据。使用键值存储,您需要预先或在变量中添加后缀来创建一些标记关系。使用数据库,您有带列和行的表,因此存储和检索数据更加容易和标准化。

      2011 年 1 月 19 日 下午 1:34

      1. alexleduc

        本文链接的 IndexedDB 入门教程中说:“IndexedDB 数据库存储键值对。”

        2011 年 1 月 20 日 上午 5:53

        1. Dan

          最终会这样,我承认我的说法并不完全准确。

          IndexedDB 允许您将完整的 JS 对象存储在数据库中,每个对象都可以存储多个键值对。这为您提供了一种对相关数据进行分组的方式,而索引则提供了一种查询数据的机制。因此,它实际上更像是 CouchDB,而不是像 MySQL 这样的关系型数据库。

          您也可以使用 g/l 存储来存储对象,如果将它们转换为 JSON(因为 g/l 存储中的所有内容都是字符串)。但您无法像使用 IndexedDB 一样查询它。

          2011 年 1 月 21 日 下午 3:29

          1. alexleduc

            感谢您的澄清。

            2011 年 1 月 22 日 上午 5:31

本文的评论已关闭。