Pregunta

es el objeto local de HTML5 aislado por página / Dominio? Me pregunto por cómo me gustaría nombrar teclas localStorage. ¿Es necesario un prefijo separado? O los puedo nombrar lo que quiera?

¿Fue útil?

Solución

Es por dominio (las mismas reglas de segregación como el mismo origen política ) , para que sea por página tendría que utilizar una clave basada en la location, o algún otro método.

No necesidad un prefijo, un solo uso, si lo necesita sin embargo. También, sí, puede nombrar a ellos lo que quiera.

Otros consejos

Las tiendas son por origen , donde origen es el mismo que para el Mismo política de origen (una combinación de esquema [http vs https, etc.], puerto y el servidor). De la especificación :

  

Cada contexto de navegación de nivel superior tiene un conjunto único de las áreas de almacenamiento de sesión, una para cada origen.

Por lo tanto, el almacenamiento de http://a.example.com y el almacenamiento de http://b.example.com están separados (y los dos están separados de http://stackoverflow.com) como esos son todos los hosts diferentes. Del mismo modo, http://example.com:80 y http://example.com:8080 y https://example.com son todos los orígenes diferentes.

No existe un mecanismo de almacenamiento integrado en web que permite a un origen para acceder al almacenamiento de otro.

Tenga en cuenta que es de origen , no URL, por lo http://example.com/page1 y http://example.com/page2 ambos tienen acceso al almacenamiento de http://example.com.

Sí, cada dominio / subdominio tiene una diferente localStorage y se puede llamar a las teclas lo que quieras (no se requiere prefijo).

Para obtener una clave se puede utilizar la tecla de método (índice) como

localStorage.key(0);

Hubo un objeto llamado globalStorage antes de donde se puede tener múltiples localStorages, pero ha sido desaprobado de las especificaciones

Siempre haría uso de un prefijo, sólo para evitar posibles colisiones con scripts de usuario -. Que podría utilizar localStorage demasiado

Como otros han apuntado a cabo, localStorage es único por protocolo, el anfitrión y el puerto. Si quieres una forma práctica de controlar su almacenamiento con teclas prefijadas, sugiero localDataStorage .

No sólo ayudar a hacer cumplir almacenamiento compartido segmentado dentro del mismo dominio anteponiendo teclas, también almacena de forma transparente los tipos de datos javascript (Array, Boolean, Date, flotador, entero, cadena y objetos), proporciona la ofuscación de datos de peso ligero, comprime automáticamente cuerdas, y facilita la consulta por la clave (nombre), así como la consulta por valor (clave).

[Aviso Legal] yo soy el autor de la utilidad [/ RENUNCIA]

Ejemplos:

// instantiate our first storage object
// internally, all keys will use the specified prefix, i.e. passphrase.life
var localData = localDataStorage( 'passphrase.life' );

localData.set( 'key1', 'Belgian' )
localData.set( 'key2', 1200.0047 )
localData.set( 'key3', true )
localData.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } )
localData.set( 'key5', null )

localData.get( 'key1' )   -->   'Belgian'
localData.get( 'key2' )   -->   1200.0047
localData.get( 'key3' )   -->   true
localData.get( 'key4' )   -->   Object {RSK: Array(5)}
localData.get( 'key5' )   -->   null


// instantiate our second storage object
// internally, all keys will use the specified prefix, i.e. prismcipher.com
var localData2 = localDataStorage( 'prismcipher.com' );

localData2.set( 'key1', 123456789 )  // integer

localData2.get( 'key1' )   -->   123456789

Como se puede ver, se respetan los valores primitivos, y se pueden crear varias instancias para controlar su almacenamiento.

Está disponible en cualquier lugar de ese dominio como se sugiere Nick, como alternativa existe sessionStorage funciona de forma ligeramente diferente en que es distinta a la ventana del navegador en sí. Es decir que las otras pestañas o ventanas en el mismo dominio no tienen acceso a la misma copia del objeto de almacenamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top