Расширение Chrome и интеграция IndexDB - PullRequest
0 голосов
/ 13 марта 2019

Итак, я работаю над проектом (создание расширения Chrome), который требует, чтобы данные были сохранены на локальном компьютере пользователя. Размер данных довольно большой, поэтому я подумал об использовании IndexDB для этой цели.

Мой вопрос: возможно ли подключить расширение Chrome к IndexDB и одновременно выполнить запрос к базе данных?

Если да, то как мне их интегрировать? В какой файл (popup.js или background.js или любой другой файл) я должен включить исходный код для создания базы данных. Я хочу, чтобы код для создания базы данных запускался только один раз. После этого я хочу только обновить или удалить только данные.

Если нет, то есть ли другой способ добиться этого? Данные большие, поэтому я не могу хранить данные в локальном хранилище.

Будет полезна любая статья, онлайн-материал, совет или метод от разработчиков Chrome или любого другого действующего сайта. Любой пример поможет мне много. Thankyou.

1 Ответ

0 голосов
/ 13 марта 2019
  • Вы можете хранить тонны данных в любом хранилище HTML5 (включая IndexedDB или localStorage) и chrome.storage.local с "unlimitedStorage" , разрешение .
  • Данные HTML5 хранятся для каждого источника URL, и каждое расширение имеет свое собственное, которое выглядит как chrome-extension://id, где id - это 32-символьная строка, которая является идентификатором расширения. В Firefox происхождение выглядит так: moz-extension://id.

  • Собственное расширение HTML5:

    • можно получить на любой странице расширения (всплывающее окно, параметры, фон), так же, как вы делаете это на веб-странице, различий нет.
    • недоступен в скрипте содержимого, так как он запускается на веб-странице и, следовательно, может получить доступ только к HTML5-хранилищу источника URL-адреса веб-страницы.
  • chrome.storage.local доступен на любой странице расширения и в скрипте содержимого.
  • Нет необходимости в специальном событии для создания / обновления хранилища IndexedDB - это произойдет автоматически при необходимости - просто откройте его как , как показано в документации , когда вам потребуется доступ к нему и ваш onupgradeneeded обратный вызов будет вызываться, если не было БД или она устарела.
  • Используйте библиотеку-оболочку для IndexedDB, которая обеспечивает упрощенный синтаксис. Некоторые из них перечислены в документации, но, возможно, вы сами найдете лучшие.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...