¿El objeto HTML5 localStorage está aislado por página / dominio? Me pregunto por cómo nombraría las claves de almacenamiento local. ¿Necesito un prefijo separado? ¿O puedo nombrarlos como quiera?
javascript
html
local-storage
Nathan Moos
fuente
fuente
Respuestas:
Es por dominio y puerto (las mismas reglas de segregación que la misma política de origen ), para que sea por página, tendría que usar una clave basada en el
location
enfoque u otro enfoque.No necesita un prefijo, use uno si lo necesita. Además, sí, puedes nombrarlos como quieras.
fuente
protocol://host:port
combinación.Las tiendas son por origen , donde "origen" es el mismo que para la Política de mismo origen (una combinación de esquema [
http
vs.https
, etc.], puerto y host). De la especificación :Por lo tanto, el almacenamiento para
http://a.example.com
y el almacenamiento parahttp://b.example.com
están separados (y ambos están separados dehttp://example.com
) ya que todos son hosts diferentes. Del mismo modo,http://example.com:80
yhttp://example.com:8080
yhttps://example.com
son todos orígenes diferentes.No hay ningún mecanismo integrado en el almacenamiento web que permita que un origen acceda al almacenamiento de otro.
Nota que de origen , no URL, por lo que
http://example.com/page1
, yhttp://example.com/page2
ambos tienen acceso al almacenamiento parahttp://example.com
.fuente
Sí, cada dominio / subdominio tiene un localStorage diferente y puede llamar a las teclas como desee (no se requiere prefijo).
Para obtener una clave, puede usar la clave de método (índice) como
Hubo un objeto llamado globalStorage antes en el que se podían tener múltiples LocalStorages, pero ha quedado en desuso de las especificaciones
fuente
Como otros han señalado, localStorage es único por protocolo, host y puerto. Si desea una forma práctica de controlar su almacenamiento con claves prefijadas, le sugiero localDataStorage .
No solo ayuda a forzar el almacenamiento compartido segmentado dentro del mismo dominio mediante el prefijo de claves, sino que también almacena de forma transparente los tipos de datos de JavaScript (matriz, booleano, fecha, flotante, entero, cadena y objeto), proporciona una ofuscación de datos liviana, comprime cadenas automáticamente y facilita la consulta por clave (nombre) así como la consulta por valor (clave).
[RENUNCIA] Soy el autor de la utilidad [/ RENUNCIA]
Ejemplos:
Como puede ver, se respetan los valores primitivos y puede crear varias instancias para controlar su almacenamiento.
fuente
Está disponible en cualquier lugar de ese dominio, como lo sugirió Nick, como alternativa hay sessionStorage funciona de manera ligeramente diferente, ya que es distinto de la ventana del navegador. Es decir que otras pestañas o ventanas en el mismo dominio no tienen acceso a esa misma copia del objeto de almacenamiento.
fuente