web-dev-qa-db-fra.com

Comment / où stocker les données dans un script Chrome Tampermonkey?

J'ai écrit un script Greasemonkey/Tampermonkey pour Facebook. J'avais besoin de stocker des données pour les récupérer plus tard. Pour cela, j'ai utilisé localStorage.
Cela fonctionnait bien. Mais j'ai remarqué qu'après quelques heures toutes les données que j'ai stockées ont été supprimées automagicllay. Facebook supprime probablement toutes les données de stockage local.

Maintenant, j'ai cherché des alternatives.

  1. Cookies : Non, cela sera supprimé lorsque l'utilisateur effacera l'historique.
  2. Web SQL: Apparemment, il est supprimé par w3.org. Donc, dans un avenir proche, je suppose que chrome pourrait ne pas utiliser le web sql aussi.

Je veux stocker les données dans le système client. Quelle option ai-je? Dois-je utiliser FileSystem pour stocker des données?

30
Rakesh Juyal

Puisque vous utilisez Tampermonkey (Chrome) et Greasemonkey (Firefox). Allez-y et utilisez GM_setValue() . Il ne peut être effacé par Facebook ou par tout autre site Web.

Il présente également l'avantage de stocker des valeurs dans plusieurs domaines.

~~~
Attention, la fonction standard de la tourbière GM_setValue() est quelque peu problématique sur Firefox. Cela peut entraîner le blocage d'une instance de script sur des valeurs non valides. Il est donc préférable d'utiliser un sérialiseur, tel que GM_SuperValue , pour stocker autre chose que des cordes. Même des entiers d'apparence innocente peuvent provoquer le crash de la fonction GM_setValue() par défaut.

Actuellement, seuls GM_setValue(), cookies, localStorage et IndexedDB sont disponibles pour les données persistantes sur les deux navigateurs.

IndexedDB ferait probablement aussi ce que vous voulez, mais il n'est nulle part aussi facile à utiliser que GM_setValue().


Mettre à jour:
De nos jours, n'oubliez pas d'utiliser:

  • // @grant GM_setValue
    et
  • // @grant GM_getValue

De plus, si vous utilisez la bibliothèque GM_SuperValue, vous l'ajouterez maintenant avec:

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

dans le bloc de métadonnées. (Puisque userscripts.org est mort depuis longtemps.)

53
Brock Adams