Je recherche des bibliothèques javascript et du code pouvant simuler localStorage
sur des navigateurs qui n'ont pas de support natif.
Fondamentalement, j'aimerais coder mon site en utilisant localStorage
pour stocker des données et savoir qu'il fonctionnera toujours sur les navigateurs qui ne le prennent pas en charge de manière native. Cela signifierait qu'une bibliothèque détecte si elle window.localStorage
existe et l'utilise si elle le fait. S'il n'existe pas, il créerait une sorte de méthode de secours de stockage local, en créant sa propre implémentation dans l' window.localStorage
espace de noms.
Jusqu'à présent, j'ai trouvé ces solutions:
- Implémentation simple de sessionStorage .
- Une implémentation qui utilise des cookies (pas ravie de cette idée).
- Dojo's dojox.storage , mais c'est son propre truc, pas vraiment une solution de secours.
Je comprends que Flash et Silverlight peuvent également être utilisés pour le stockage local, mais je n'ai rien trouvé sur leur utilisation comme solution de secours pour HTML5 localStorage standard. Peut-être que Google Gears a également cette capacité?
Veuillez partager toutes les bibliothèques, ressources ou extraits de code associés que vous avez trouvés! Je serais particulièrement intéressé par les solutions purement javascript ou jquery, mais je suppose que c'est peu probable.
la source
Réponses:
J'utilise PersistJS ( référentiel github ), qui gère le stockage côté client de manière transparente et transparente à votre code. Vous utilisez une seule API et bénéficiez d'une assistance pour les backends suivants:
Chacun de ceux-ci peut être désactivé, si, par exemple, vous ne souhaitez pas utiliser de cookies. Avec cette bibliothèque, vous bénéficierez d'une prise en charge native du stockage côté client dans IE 5.5+, Firefox 2.0+, Safari 3.1+ et Chrome; et prise en charge assistée par plugin si le navigateur dispose de Flash ou Gears. Si vous activez les cookies, cela fonctionnera dans tout (mais sera limité à 4 ko).
la source
Polyfill de stockage local simple basé sur JS pur:
Démo: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
la source
var expires
localement et ensuite l'utilisateur dans une autre portée? en fonctionset
avez-vous vu la page polyfill sur le wiki Modernizr?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
recherchez la section de stockage Web sur cette page et vous verrez 10 solutions potentielles (en juillet 2011).
bonne chance! marque
la source
Vous trouverez ci-dessous une version rangée de la réponse d'Aamir Afridi qui conserve tout son code encapsulé dans la portée locale.
J'ai supprimé les références qui créent une
ret
variable globale et également supprimé l'analyse des chaînes "true" et "false" stockées en valeurs booléennes dans laBrowserStorage.get()
méthode, ce qui pourrait poser des problèmes si l'on essaie de stocker les chaînes "true" ou "faux".Étant donné que l'API de stockage local ne prend en charge que les valeurs de chaîne, il est toujours possible de stocker / récupérer des données de variable JavaScript avec leurs types de données appropriés en codant lesdites données dans une chaîne JSON, qui peut ensuite être décodée à l'aide d'une bibliothèque de codage / décodage JSON telle que https: //github.com/douglascrockford/JSON-js
la source
Personnellement, je préfère amplify.js . Cela a très bien fonctionné pour moi dans le passé et je l'ai recommandé pour tous les besoins de stockage local.
la source
store.js utilise userData et IE et localStorage sur d'autres navigateurs.
Il n'essaye pas de faire quelque chose de trop complexe
Pas de cookies, pas de flash, pas de jQuery nécessaire.
Clean API.
5 ko compressé
https://github.com/marcuswestin/store.js
la source
La page MDN pour le stockage DOM propose plusieurs solutions de contournement qui utilisent des cookies.
la source
Lawnchair semble aussi être une bonne alternative
la source
Il existe un stockage réel , qui utilise Gears comme solution de secours.
la source