Le développement des applications Web a conduit à une utilisation croissante du stockage côté client, et il existe différentes manières de mettre en œuvre le stockage côté client. La solution la plus simple et la plus compatible est Cookie, mais en tant que véritable stockage côté client, Cookie présente de nombreux défauts fatals. De plus, userData Behaviour peut également être utilisé dans IE6 et supérieur, globalStorage peut être utilisé sous Firefox et Flash Local Storage peut être utilisé dans des environnements avec des plug-ins Flash. Cependant, ces méthodes ont toutes des limitations de compatibilité, elles ne le sont donc vraiment pas. idéal à utiliser. En réponse à la situation ci-dessus, HTML5 offre une solution plus idéale : si vous avez besoin de stocker des données complexes, vous pouvez utiliser Web Database , et vous pouvez utiliser SQL comme un programme client (mais le standard Web Database est actuellement dans une impasse, et actuellement les navigateurs implémentés sont très limités); si vous avez besoin de stocker des données qui peuvent être résolues simplement avec des paires clé/valeur, vous pouvez utiliser Web Storage . Cet article présente principalement la situation spécifique du Web Storage sous différents aspects.
sessionStorage et localStorage
Le stockage Web se compose en fait de deux parties : sessionStorage et localStorage.
sessionStorage est utilisé pour stocker localement les données dans une session. Ces données ne sont accessibles que par les pages de la même session et les données sont détruites à la fin de la session. Par conséquent, sessionStorage n'est pas un stockage local persistant, mais uniquement un stockage au niveau de la session.
localStorage est utilisé pour le stockage local persistant, à moins que les données ne soient activement supprimées, les données n'expireront jamais.
Pourquoi choisir le stockage Web plutôt que les cookies ?
Par rapport aux Cookies, le Stockage Web présente de nombreux avantages, qui se résument comme suit :
1. Espace de stockage plus grand : chaque espace de stockage indépendant sous IE8 est de 10 Mo. L'implémentation des autres navigateurs est légèrement différente, mais elle est beaucoup plus grande que Cookie.
2. Le contenu stocké ne sera pas envoyé au serveur : lorsqu'un cookie est défini, le contenu du cookie sera envoyé au serveur avec la demande, ce qui constitue un gaspillage de bande passante pour les données stockées localement. Les données de Web Storage n'existent que localement et n'interagissent en aucune façon avec le serveur.
3. Interfaces plus riches et plus faciles à utiliser : Web Storage fournit un ensemble d'interfaces plus riches, facilitant les opérations sur les données.
4. Espace de stockage indépendant : Chaque domaine (y compris les sous-domaines) dispose d'un espace de stockage indépendant. Chaque espace de stockage est complètement indépendant, il n'y aura donc aucune confusion de données.
Comment se passe la compatibilité ?
Les différents tests suivants ont été effectués dans les navigateurs suivants : IE8, Firefox3.6, Chrome5, Safari4, Opera10. Il s'avère que l'implémentation des API dans chaque navigateur est fondamentalement la même et qu'il existe certains problèmes de compatibilité, mais ils ne le sont pas. affecter l'utilisation normale.
test de stockage de session
Cette section teste principalement certaines fonctionnalités de sessionStorage. Le test se concentre sur la définition de session par chaque navigateur et la situation inter-domaines. La méthode de test est très simple : ouvrez la page A , écrivez les données de la session en cours dans la page A, puis utilisez différentes méthodes pour accéder à la page B via les liens ou les boutons de la page A. Si la page B peut accéder aux données de la page A, cela signifie que le navigateur considère les pages A et B actuelles comme la même session. Les résultats spécifiques du test sont présentés dans le tableau 1 :
Tableau 1 Test de compatibilité sessionStorage
Comme le montre le tableau 1, pour des raisons de sécurité, l'accès aux données de session n'est pas autorisé sur tous les domaines dans tous les navigateurs, y compris entre sous-domaines. Sous d’autres aspects, la mise en œuvre dans les navigateurs grand public est relativement cohérente.