Limite de tamanho do HTML5 localStorage para subdomínios

Os bancos de dados de armazenamento local do HTML5 geralmente são limitados por tamanho – os tamanhos padrão são 5 ou 10 MB por domínio. Esses limites podem ser contornados por subdomínios (por exemplo, example.com, hack1.example.com e hack2.example.com, todos têm seus próprios bancos de dados de 5 MB)? E existe alguma coisa no padrão que especifica se os domínios pai podem acessar os bancos de dados de seus filhos? Eu não consigo encontrar nada, e eu posso ver argumentos para fazer isso de qualquer forma, mas parece que tem que haver algum modelo padrão.

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

Um limite na maior parte arbitrário de cinco megabytes por origem é recomendado. O feedback de implementação é bem-vindo e será usado para atualizar essa sugestão no futuro.

Também menciona que:

Os agentes do usuário devem proteger os sites que armazenam dados nas origens de outros sites afiliados, por exemplo, armazenando até o limite em a1.example.com, a2.example.com, a3.example.com, etc, contornando o principal limite de armazenamento de example.com .

Aqui está um resultado de teste bastante detalhado com abundância de navegadores de desktop e móveis cobertos: http://dev-test.nemikor.com/web-storage/support-test/

O que confirma este relatório de erros: http://code.google.com/p/chromium/issues/detail?id=58985#c15

Você pode confiar em apenas 2,5 MB, não em 5 MB, com base no tamanho da string que você pode armazenar.

Eu perdi essa pergunta quando perguntei ” É 5MB o limite de facto para W3C Web Storage? “, Mas eu tenho basicamente a mesma resposta. Se você quiser mais informações, eu fiz um link para alguns limites específicos do navegador na minha pergunta.

Uma solução melhor é usar o [HTML5 IndexedDB para armazenamento off-line.] 1

Parece que a substituição para o antigo Web SQL (que parece ser chamado incorretamente de b / c para armazenamento offline ) é: DB indexado, que permite armazenamento offline e ainda é suportado:

IndexedDB é novo em HTML5. Bancos de dados da Web são hospedados e persistidos dentro do navegador do usuário. Ao permitir que os desenvolvedores criem aplicativos com capacidades de consulta avançadas, prevê-se que surja uma nova geração de aplicativos da Web que tenham a capacidade de trabalhar on line e off-line .

Mais informações e um aplicativo de teste em: http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html

Para obter 50MB de espaço de armazenamento, use o código abaixo

// 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){ok=e,ov=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); }); 

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

Intereting Posts