google-chrome - Chrome 扩展和 IndexDB 集成

标签 google-chrome google-chrome-extension

因此,我正在进行一个项目(构建一个 chrome 扩展),该项目需要将数据存储在用户的本地计算机上。数据量很大,因此我想到了为此目的使用 IndexDB。

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

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

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

来自 chrome 开发人员或任何其他有效网站的任何论文、在线 Material 、建议或方法都会有所帮助。任何例子都会对我有很大帮助。 谢谢。

最佳答案

  • 您可以在任何 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 使用包装器库。文档中列出了一些,但您可以自己找到更好的。

关于google-chrome - Chrome 扩展和 IndexDB 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55147450/

相关文章:

javascript - 无法使用 Chrome 扩展程序设置 cookie

javascript - innerHTML = Date() 在 fiddle 中工作,但在 Chrome 或 IE 中不起作用

javascript - 可以将匿名函数或对函数的引用传递给 executeScript 吗?

javascript - list 中是否有可能有两个单独的 css 文件,影响两个单独的域?

javascript - 如何在事件上设置断点?

rest - 如何将 curl 命令转换为 http 请求?

javascript - Chrome 中是否有命令行参数用于在启动时启动开发人员工具?

javascript Chrome 扩展无法读取 httponly cookie

javascript - FileReader 读取为 DataUrl

javascript - 谷歌浏览器 "Application Shortcut": How to auto-load JavaScript?