¿Qué sucede cuando localStorage está lleno?

Encontré artículos sobre el comportamiento del caché, así que solo puedo suponer que no es muy diferente, pero quería asegurarme.

He leído que la mayoría de los navegadores tienen 5MB (dar o recibir) para localStorage y me interesó cuál sería el comportamiento de los navegadores.

Entiendo que cada navegador actúa de manera diferente, pero estoy interesado principalmente en Safari, Chrome y Firefox (ya que esos son los que considero navegadores).

  • ¿Los navegadores mencionados anteriormente eliminarán los datos de mi sitio web o elegirán “el más antiguo” o algo por el estilo?
  • ¿Se guardará mi artículo en tal caso?

Y lo mas importante :

  • Digamos que “abuse” de localStorage y mi sitio web tratando de usarlo todo, y en la misma página lo estoy llenando y tratando de ahorrar más, ¿ getItem una advertencia Y el getItem devolverá nulo cuando esto suceda o de alguna manera se guarda en la memoria?

  • ¿Qué sucede si bash guardar un artículo más grande que el tamaño local de almacenamiento?

    Respondido: la respuesta se puede encontrar aquí

  • ¿Se puede esperar el mismo comportamiento exacto de sessionStorage que, por lo visto, debería ser el mismo?

Sé que esta es una gran cantidad de preguntas, pero estoy tratando de entender todo lo relacionado con el tema, agradeceré cualquier parte de la pregunta que pueda contestar.

Saludos.

En primer lugar, algunos recursos útiles:

  • Prueba de compatibilidad de almacenamiento web : tiene una tabla que compara las cuotas de almacenamiento de datos entre los navegadores.
  • Prueba simple de cuota de almacenamiento local
  • Resumen del comportamiento del navegador LocalStorage
  • Especificación W3C : indica cómo se comportará un agente de usuario (por ejemplo, navegador) (tanto localStorage como sessionStorage).

En respuesta a su pregunta, los navegadores de escritorio tienden a tener una cuota de almacenamiento local local máxima de 5 MB por dominio. Esto puede ser ajustado por el usuario en algunos casos:

  • Opera: opera: config -> Cuota del dominio para localStorage
  • Firefox: about: config -> dom.storage.default_quota

En Chrome, no parece haber una manera para que el usuario ajuste esta configuración aunque, al igual que los datos de Opera, localStorage, se pueden editar directamente por dominio usando Developer Tools.

Cuando intenta almacenar datos en localStorage, el navegador comprueba si hay suficiente espacio restante para el dominio actual. En caso afirmativo:

  • Los datos se almacenan, sobrescribiendo los valores si ya existe una clave idéntica.

Si no:

  • Los datos no se almacenan y no se sobrescriben los datos existentes.
  • Se QUOTA_EXCEEDED_ERR excepción QUOTA_EXCEEDED_ERR .

En este caso, getItem(key) devolverá el último valor que se almacenó correctamente, si corresponde.

(Opera es ligeramente diferente, ya que muestra un cuadro de diálogo que brinda al usuario la opción de boost el espacio de almacenamiento para el dominio actual).

Tenga en cuenta que sessionStorage y localStorage son implementaciones del mismo objeto de almacenamiento por lo que su comportamiento es similar y el manejo de errores es el mismo.