Passer au contenu principal




Le stockage persistant peut aider à protéger les données critiques contre l'expulsion et à réduire le risque de perte de données.


Mise à jour

Cuando se enfrentan a presiones de almacenamiento como poco espacio en disco, los navigateurs normalmente desalojarán los datos, incluso de la API de cache e IndexedDB, del origen menos utilizado recientemente. Esto puede provocar la pérdida de datos si la aplicación no ha sincronizado los datos con el serveur y reducir la confiabilidad de la aplicación al eliminar los recursos necesarios para que funcione, lo que genera experiencias negativas para el Nom d'utilisateur.

Afortunadamente, la investigación del equipo de Chrome muestra que Chrome rara vez borra los datos automáticamente. Es mucho más común que los usuarios borren manualmente el almacenamiento. Por lo tanto, si un usuario visita su sitio con regularidad, hay pocas posibilidades de que sus datos sean desalojados. Para evitar que el le navigateur elimine sus datos, puede solicitar que todo el almacenamiento de su sitio se marque como persistente.

Demander que toutes les données de votre site soient marquées comme persistantes ne doit être effectuée que pour les données critiques (par exemple, les clés de chiffrement de bout en bout) qui, si elles ne sont pas sauvegardées dans le cloud, pourraient entraîner une perte de données significative si elles ne sont pas enregistrées. Le navigateur ne supprime pas le stockage persistant, même si le stockage est faible. Il ne sera supprimé que si l'utilisateur choisit de le supprimer via les paramètres de son site.

Le stockage persistant est soutenu par de nombreux navegadores. Para obtener más información sobre el desalojo, cuánto puede almacenar y cómo manejar las limitaciones de las cuotas, consulte Almacenamiento para la la toile.

Vérifiez si le stockage de votre site a été marqué comme persistant

Puede utilizar JavaScript para determinar si el almacenamiento de su sitio se ha marcado como persistente. Vocación navigator.storage.persisted () renvoie une Promise qui se résout en booléen, indiquant si le stockage a été marqué comme persistant.


si (navigateur.storage && navigateur.storage.persist) {
const isPersisted = attendre navigateur.storage.persisted();
console.Journal(`Persisted storage granted: ${isPersisted}`);
}

Quand dois-je demander un stockage persistant?

Le meilleur moment pour demander que votre stockage soit marqué comme persistant est lorsque vous enregistrez des données utilisateur critiques, et la demande doit idéalement être enveloppée dans un geste de l'utilisateur. Ne demandez pas de stockage persistant lors du chargement de la page, ou tout autre code de démarrage, le navigateur peut demander la permission à l'utilisateur. Si l'utilisateur ne fait rien qui, selon lui, devrait être sauvegardé, le message peut être déroutant et il rejettera probablement la demande. Aussi, ne prévenez pas trop souvent. Si l'utilisateur a décidé de ne pas accorder l'autorisation, ne demandez pas à nouveau immédiatement lors de la prochaine sauvegarde.

Demander un stockage persistant

Pour demander un stockage permanent pour les données de votre site, appelez
navigator.storage.persist (). Renvoie une Promise qui se résout en une valeur booléenne, indiquant si l'autorisation de stockage persistant a été accordée.


si (navigateur.storage && navigateur.storage.persist) {
const isPersisted = attendre navigateur.storage.persist();
console.Journal(`Persisted storage granted: ${isPersisted}`);
}

Noms d'API pour Chèque si le stockage de votre site a déjà été marqué comme persistant, et demander le stockage persistant est très similaire. La façon dont je me souviens de la différence est persisté () est passé et est utilisé pour vérifier s'il persiste déjàed. Alors que persister () il est au présent et le demande maintenant.

Comment la permission est-elle accordée?

Le stockage persistant est traité comme permis. Les navigateurs utilisent différents facteurs pour décider d'accorder ou non des autorisations de stockage persistant.

Chrome et autres navigateurs basés sur Chromium

Chrome et la plupart des autres navigateurs basés sur Chromium traitent automatiquement la demande d'autorisation et n'affiche aucun message à l'utilisateur. Au lieu de cela, si un site est jugé important, une autorisation de stockage persistant est automatiquement accordée; sinon, il est nié en silence.

Les heuristiques pour déterminer si un site est important comprennent:

  • Quel est le niveau de participation du site?
  • Le site a-t-il été installé ou ajouté à vos favoris?
  • Le site a-t-il reçu l'autorisation d'afficher des notifications?

Si la demande a été refusée, elle peut être redemandée ultérieurement et sera évaluée en utilisant la même heuristique.

Firefox

Firefox délègue la demande d'autorisation à l'utilisateur. Lorsqu'un stockage persistant est demandé, l'utilisateur est invité à entrer une fenêtre contextuelle d'interface utilisateur lui demandant s'il autorise le site à stocker des données dans un stockage persistant.

ff-persist-request-4761055

Une fenêtre contextuelle qui affiche Firefox lorsqu'un site demande un stockage persistant.

Quel stockage est protégé par un stockage persistant?

Si l'autorisation de stockage persistant est accordée, le navigateur n'expulsera pas les données stockées dans:

  • API de cache
  • Biscuits
  • Stockage DOM
  • API du système de fichiers (système de fichiers fourni par navigateur et sandbox)
  • IndexedDB
  • Travailleurs de service
  • Cache d'application (obsolète, ne doit pas être utilisé)
  • WebSQL (obsolète, ne doit pas être utilisé)

Comment désactiver le stockage persistant

Pour le moment, il n'existe aucun moyen par programme d'indiquer au navigateur qu'il n'a plus besoin de stockage persistant.

conclusion

La investigación del equipo de Chrome muestra que, aunque es posible, Chrome rara vez borra automáticamente los datos almacenados. Para proteger los datos críticos que pueden no almacenarse en la nube, o que resultarán en una pérdida significativa de datos, el almacenamiento persistente puede ser una herramienta útil para garantizar que el navegador no elimine sus datos cuando el dispositivo local se enfrenta a la presión del almacenamiento. Y recuerde, solicite almacenamiento persistente solo cuando être más probable que el usuario lo desee.

Merci

Un merci spécial à Victor Costan et Joe Medley pour avoir relu cet article. Merci à Chris Wilson, qui a écrit la version originale de cet article paru pour la première fois sur WebFundamentals.

Image héroïque d'Umberto en Unsplash