Jusqu'ici, pour cette tâche, nous avions pris l'habitude de recourir à ou des cookies. Toutefois, suivant les besoins, les cookies ne sont pas l'outil le plus adéquat :
Il existe deux variables distinctes suivant la durée de vie à attribuer à vos données :
Par contre, ces espaces de stockage possèdent quelques contraintes :
Attention : n'oubliez pas, qu'au même titre qu'un cookie, ces espaces de stockage sont parfaitement accessibles, lisibles et manipulables par le client. Ne les utilisez pas pour conserver des données significatives.
Note : ci-dessous, pour les exemples, j'utilise localStorage mais elle est parfaitement interchangeable avec sessionStorage.
if (localStorage) { // localStorage est disponible } else { // localStorage n'est pas disponible }
if ('foo' in localStorage) { // la clé 'foo' est présente dans localStorage } else { // la clé 'foo' n'est pas présente dans localStorage }
var count = localStorage['count']; // ou var count = localStorage.getItem('count'); // ou (solution non valable dans certains cas) var count = localStorage.count;
localStorage['count'] = parseInt(localStorage['count']) + 1; // ou localStorage.setItem('count', parseInt(localStorage.getItem('count')) + 1); // ou (solution non valable dans certains cas) localStorage.count = parseInt(localStorage.count) + 1;
Pour supprimer la clé count :
localStorage.removeItem('count'); // ou delete localStorage['count']; // ou (solution non valable dans certains cas) delete localStorage.count;
localStorage.clear();
Cela supprime bien évidemment uniquement l'espace de stockage (permanent ici) que le navigateur associe à votre propre site, ce n'est pas global, ça n'impactera pas les données qu'il conserve pour d'autres sites.