Pregunta Límite de tamaño de almacenamiento local de HTML5 para subdominios


Las bases de datos localStorage de HTML5 generalmente tienen un tamaño limitado: los tamaños estándar son de 5 o 10 MB por dominio. ¿Pueden estos límites ser eludidos por subdominios (por ejemplo, example.com, hack1.example.com y hack2.example.com, todos tienen sus propias bases de datos de 5 MB)? ¿Y hay algo en el estándar que especifique si los dominios principales pueden acceder a las bases de datos de sus hijos? No puedo encontrar nada, y puedo ver argumentos para hacerlo de cualquier manera, pero parece que tiene que haber algún modelo estándar.


75
2018-04-30 19:55


origen


Respuestas:


De http://dev.w3.org/html5/webstorage/#disk-space

Se recomienda un límite mayoritariamente arbitrario de cinco megabytes por origen. Los comentarios sobre la implementación son bienvenidos y se usarán para actualizar esta sugerencia en el futuro.

También menciona que:

Los agentes de usuario deben protegerse contra los sitios que almacenan datos bajo los orígenes   otros sitios afiliados, p. almacenar hasta el límite en   a1.example.com, a2.example.com, a3.example.com, etc., eludiendo el   Límite de almacenamiento de example.com principal.


53
2018-05-03 08:34



Este es un resultado de prueba bastante detallado con muchos navegadores de escritorio y dispositivos móviles cubiertos: http://dev-test.nemikor.com/web-storage/support-test/

Lo que confirma este informe de error: http://code.google.com/p/chromium/issues/detail?id=58985#c15

Puede confiar solo en 2.5MB, no en 5MB, según la longitud de la cadena que puede almacenar.


14
2018-01-17 13:09



Me perdí esta pregunta cuando pregunté "¿Es el límite de facto de 5 MB el almacenamiento web del W3C?", pero obtuve básicamente la misma respuesta. Si desea obtener más información, hice un enlace a algunos límites específicos del navegador en mi pregunta.


9
2017-08-27 13:39



Una mejor solución es usar el [HTML5 IndexedDB para almacenamiento fuera de línea].1

Parece el reemplazo del antiguo SQL web (que parece ser mal llamado b / c es para desconectado almacenamiento) es: base de datos indexada, que permite el almacenamiento fuera de línea y aún se admite:

IndexedDB es nuevo en HTML5. Las bases de datos web se alojan y persisten   dentro del navegador de un usuario. Permitiendo a los desarrolladores crear aplicaciones   con ricas habilidades de consulta, se prevé que una nueva clase de web   surgirán aplicaciones que tengan la capacidad de trabajar en línea y    desconectado.

Más información y un prueba-aplicación a: http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html


5
2018-05-23 13:52



Para obtener 50 MB de espacio de almacenamiento, use el siguiente código

// 1. paste this line in your code
!function(){function e(t,o){return n?void(n.transaction("s").objectStore("s").get(t).onsuccess=function(e){var t=e.target.result&&e.target.result.v||null;o(t)}):void setTimeout(function(){e(t,o)},100)}var t=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;if(!t)return void console.error("indexDB not supported");var n,o={k:"",v:""},r=t.open("d2",1);r.onsuccess=function(e){n=this.result},r.onerror=function(e){console.error("indexedDB request error"),console.log(e)},r.onupgradeneeded=function(e){n=null;var t=e.target.result.createObjectStore("s",{keyPath:"k"});t.transaction.oncomplete=function(e){n=e.target.db}},window.ldb={get:e,set:function(e,t){o.k=e,o.v=t,n.transaction("s","readwrite").objectStore("s").put(o)}}}();

// 2. Setting values
ldb.set('nameGoesHere', 'value goes here');

// 3. Getting values - callback is required because the data is being retrieved asynchronously:
ldb.get('nameGoesHere', function (value) {
  console.log('And the value is', value);
});

fuente https://github.com/DVLP/localStorageDB


2
2018-05-27 15:55