Подтвердить что ты не робот

Как/Где хранить данные в Chrome Tampermonkey script?

Я написал один Greasemonkey/Tampermonkey script для Facebook. Мне нужно было сохранить данные, чтобы получить их позже. Для этого я использовал localStorage.
Это прекрасно работает. Но я заметил, что через несколько часов все данные, которые я хранил, были удалены автоматически. Вероятно, сам Facebook удаляет все данные localStorage.

Теперь я искал альтернативы.

  • Cookies. Это не будет удалено, когда пользователь очистит историю.
  • Веб-SQL. По-видимому, он упал на w3.org. Поэтому в ближайшем будущем я предполагаю, что хром может не использовать веб-sql тоже.

Я хочу хранить данные в клиентской системе. Какой у меня вариант? Должен ли я использовать FileSystem для хранения данных?

4b9b3361

Ответ 1

Поскольку вы используете Tampermonkey (Chrome) и Greasemonkey (Firefox). Идем дальше и используем GM_setValue(). Он не может быть очищен Facebook или любым другим сайтом.

У этого есть преимущество хранения значений междоменного домена.

~~~
Остерегайтесь, что стандартное болото GM_setValue() несколько проблематично для Firefox. Это может привести к сбою экземпляра script при недопустимых значениях. Поэтому лучше всего использовать сериализатор, например GM_SuperValue, чтобы хранить что-либо, кроме строк. Даже невинные целые числа могут привести к сбою по умолчанию GM_setValue().

В настоящее время для постоянных данных в обоих браузерах доступны только GM_setValue(), cookies, localStorage и IndexedDB.

IndexedDB также, вероятно, сделает то, что вы хотите, но он не так прост в использовании, как GM_setValue().


Обновление:
В настоящее время не забывайте использовать:

  • // @grant GM_setValue
    и
  • // @grant GM_getValue

Кроме того, если вы используете библиотеку GM_SuperValue, вы должны добавить ее с помощью:

// @require http://userscripts-mirror.org/scripts/source/107941.user.js 

в блоке метаданных. (Так как userscripts.org давно мертв.)