95 votes

Que se passe-t-il lorsque localStorage est plein ?

J'ai trouvé articles concernant le comportement du cache, je ne peux que supposer qu'il n'est pas très différent, mais je voulais m'en assurer.

J'ai lu que la plupart des navigateurs disposent de 5 Mo (à peu près) pour le stockage local et je me demandais quel serait le comportement des navigateurs.

Je comprends que chaque navigateur agit différemment, mais je m'intéresse surtout à Safari, Chrome et Firefox (car ce sont ceux que je considère comme des navigateurs).

  • Les navigateurs mentionnés ci-dessus supprimeront-ils les données de mon site web ou choisiront-ils "les plus anciennes" ou quelque chose de ce genre ?
  • Mon article sera-t-il sauvegardé dans ce cas ?

Et le plus important :

  • Supposons que j'"abuse" du stockage local sur mon site web en essayant de l'utiliser au maximum et que, dans la même page, je le remplisse et essaie d'en sauvegarder davantage. Recevrai-je un avertissement ? La page getItem retour null lorsque cela se produit ou est-ce qu'il est en quelque sorte sauvegardé en mémoire ?

  • Que se passe-t-il si j'essaie d'enregistrer un objet plus grand que la taille de l'écran ? localStorage taille ?

Réponse : la réponse peut être trouvée aquí

  • Peut-on s'attendre à un comportement identique de la part de sessionStorage qui devrait être identique ?

Je sais que cela fait beaucoup de questions, mais j'essaie de comprendre tout ce qui est lié au sujet, et je vous serais reconnaissant de répondre à toute partie de la question.

124voto

tagawa Points 1930

Tout d'abord, quelques ressources utiles :

Pour répondre à votre question, les navigateurs de bureau ont généralement un quota initial maximum de localStorage de 5 Mo par domaine. Ce quota peut être ajusté par l'utilisateur dans certains cas :

  • Opera : opera:config -> Quota de domaine pour localStorage
  • Firefox : about:config -> dom.storage.default_quota

Dans Chrome, il ne semble pas y avoir de moyen pour l'utilisateur d'ajuster ce paramètre bien que, comme dans Opera, les données de localStorage puissent être modifiées directement par domaine à l'aide des outils de développement.

Lorsque vous essayez de stocker des données dans localStorage, le navigateur vérifie s'il reste suffisamment d'espace pour le domaine en cours. Si c'est le cas, le navigateur vérifie qu'il reste suffisamment d'espace pour le domaine en cours :

  • Les données sont stockées, en écrasant les valeurs si une clé identique existe déjà.

Si non :

  • Les données ne sont pas stockées et aucune donnée existante n'est écrasée.
  • A QUOTA_EXCEEDED_ERR est levée.

En l'occurrence, getItem(key) renvoie la dernière valeur stockée avec succès, le cas échéant.

(Opera est légèrement différent en ce sens qu'il affiche une boîte de dialogue donnant à l'utilisateur le choix d'augmenter l'espace de stockage pour le domaine en cours).

Notez que sessionStorage et localStorage sont tous deux des implémentations du même objet Storage ; leur comportement est donc similaire et la gestion des erreurs est la même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X