Chrome扩展程序和IndexDB集成

时间:2019-03-13 16:59:56

标签: google-chrome google-chrome-extension

因此,我正在从事一个项目(构建chrome扩展程序),该项目要求将数据存储在用户的本地计算机上。数据量很大,因此我考虑将IndexDB用于此目的。

我的问题是,是否可以将chrome扩展程序与IndexDB连接并同时查询数据库?

如果是,那么如何集成它们。我应该在哪个文件(popup.js或background.js或任何其他文件)中包含用于创建数据库的源代码。 我希望用于创建数据库的代码仅运行一次。之后,我只想仅更新或删除数据。

如果否,那么还有其他方法可以实现吗?数据很大,因此我无法将数据存储在本地存储中。

Chrome开发人员或任何其他有效站点提供的任何纸张,在线材料,建议或方法都会有所帮助。任何例子都会对我有很大帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

  • 您可以在任何HTML5存储(包括IndexedDB或localStorage)和chrome.storage.local with "unlimitedStorage" permission中存储大量数据。
  • HTML5数据是按URL来源存储的,每个扩展都有自己的扩展名,看起来像chrome-extension://id,其中id是一个32个字符的字符串,它是扩展的ID。在Firefox中,来源看起来像moz-extension://id

  • 扩展程序自己的HTML5存储空间:

      就像在网页中一样,可以在任何扩展页面(弹出窗口,选项,背景)中访问
    • 无法在内容脚本中访问它,因为它在网页中运行,因此只能访问网页URL来源的HTML5存储。
  • 可以在任何扩展页面和内容脚本中访问
  • chrome.storage.local。
  • 无需特殊事件即可创建/升级IndexedDB存储-如果需要,它将自动发生-每当需要访问时,只需以shown in the documentation形式打开它即可,并且会调用onupgradeneeded回调如果没有数据库或它已过时。
  • 使用IndexedDB的包装器库提供简化的语法。文档中列出了其中一些,但您可能自己会找到更好的。