因此,我正在进行一个项目(构建一个 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/