Разработка расширений Chrome — использование локальной базы данных и последующее ее обновление

#javascript #json #database #google-chrome #google-chrome-extension

#javascript #json #База данных #google-chrome #google-chrome-extension

Вопрос:

Я новичок в разработке расширений Chrome. Я выполнил несколько полезных проектов, но никогда не использовал базу данных для своих расширений Chrome. Поэтому я решил создать проект для мамы, который облегчил бы ей посещение некоторых веб-сайтов.

В основном моя локальная база данных (которую я включу в свое расширение Chrome) будет иметь такой формат данных:

 title | category | description | url

Google | Search Engine | Use this to search | http://www.google.com
Gmail | Email | Use this to view or send emails | http://www.gmail.com
Youtube | Videos | Use this to view videos or watch movies | http://www.youtube.com
......
  

Количество записей будет находиться в диапазоне от 200 до 500.

Что я собираюсь сделать, так это заставить мое расширение загружать пользовательскую ДОМАШНЮЮ страницу при открытии новой вкладки / окна. И на этой домашней странице будет окно поиска. Где моя мама может ввести какой-нибудь текст, Email и он будет отфильтровывать элементы (из приведенной выше базы данных), соответствующие этому ключевому слову.

Изначально я думал о сохранении вышеуказанных данных в файле JSON и использовании его в качестве базы данных. Потому что нет вставки или обновления записей через мое расширение Chrome. Выполняется только запрос и отображение. Кроме того, я планирую написать код для проверки моего веб-сервера, чтобы проверить, есть ли какая-либо новая доступная база данных, если да, загрузите и используйте ее.

Проблемы, с которыми я сталкиваюсь, это:

  • если я использую файл JSON в качестве своей базы данных, есть ли лучший способ выполнить запрос, а не перебирать элементы и выполнять Javascript indexOf() для каждого элемента, чтобы проверить, есть ли у него запрошенный элемент?
  • опять же, если я использую файл JSON в качестве своей базы данных, как я могу загрузить новый обновленный JSON с сервера и сохранить его, заменив мой локальный файл JSON? Я думаю chrome.downloads , что API не позволяет этого

Или у вас есть лучшее предложение?

Комментарии:

1. Прочитайте JSON при установке / обновлении и запишите его в chrome.storage или IndexedDB, затем используйте его.

2. @wOxxOm Спасибо. Если я собираюсь использовать chrome.storage , я должен сохранить весь файл в одном ключе, подобном этому chrome.storage.local.set({ 'my_db': myJSONdata }, function() { }); , и позже, когда потребуется, извлечь его, а затем выполнить итерацию по нему для поиска подходящих критериев и выполнения необходимых действий. Я прав?

3. Да, это возможный подход.

4. @wOxxOm Спасибо. Как вы думаете, итерационный способ запроса потребляет ресурсы, или в моем случае было бы незначительно от 200 до 500 записей? Google Chrome уже является ресурсоемким браузером. Или у вас есть какие-либо предложения по производительности при выполнении запросов? Просто спрашиваю, чтобы я мог завершить работу с JSON и chrome.storage

5. Зависит. Для любых проблем, связанных с производительностью, используйте профилировщик devtools и ручные измерения прошедшего времени. Если вам не нравятся результаты, переключитесь на IndexedDB.