Как использовать chrome.storage вместе с удаленно размещенной базой данных для расширения chrome?

Я работаю над расширением Chrome, которое должно хранить данные своего пользователя. Для этого я использую сервер, на котором запущена база данных mysql. Но в настоящее время любое добавление или изменение данных запускает запрос к размещенному серверу.

Расширение Chrome обеспечивает chrome.storage.local API, который подходит для хранения данных до 5 МБ. Я хочу воспользоваться этим API хранилища, чтобы уменьшить количество запросов к моему размещенному серверу, используя его как временное хранилище.

Я планирую использовать chrome.storage.onChanged.addListener а также chrome.storage.local.getBytesInUse проверить, пересекает ли хранимые данные определенное пороговое значение, а затем запустить только ajax-запрос к удаленному серверу для сохранения данных. После успешного ответа старые данные в chrome.storage будут удалены.

Но есть вероятность потери некоторых новых данных, которые создаются в процессе цикла запрос / ответ с сервера.

Как я могу предотвратить потерю данных? Есть ли альтернативное решение этой проблемы оптимизации - уменьшение количества запросов к удаленному серверу от расширения?

Благодарю.

1 ответ

Это не совсем вопрос о расширениях Chrome. Это больше о постоянных базах данных, которые работают в автономном режиме и разумно синхронизируются. Что бывает очень сложно сделать правильно.

Самое простое решение - использовать chrome.storage.sync. Это дает вам постоянство бесплатно с оговоркой ограниченного хранения. Вы обязательно должны увидеть, если это возможно, прежде чем пытаться другие варианты.

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

Статья о преимуществах прогрессивных веб-приложений

Google Tutorial

PouchDB, уважаемая веб-база данных, которая работает в автономном режиме и синхронизируется с другими базами данных.

Посмотри на них. Это того стоит. в противном случае вы просто будете создавать хаки поверх хаков, пытаясь заставить синхронизацию работать.

... еще одна вещь... не забудьте добавить URL вашей удаленной базы данных в разрешения вашего манифеста.

Другие вопросы по тегам