Limite di dimensione HTML5 localStorage per i sottodomini

I database localStorage di HTML5 sono in genere a dimensione limitata: le dimensioni standard sono 5 o 10 MB per dominio. Questi limiti possono essere aggirati dai sottodomini (ad esempio example.com, hack1.example.com e hack2.example.com hanno tutti i loro 5 MB di database)? E c’è qualcosa nello standard che specifica se i domini dei genitori possono accedere ai database dei loro figli? Non riesco a trovare nulla, e posso vedere gli argomenti per farlo in entrambi i casi, ma sembra che ci debba essere un modello standard.

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

Si consiglia un limite per lo più arbitrario di cinque megabyte per origine. Il feedback sull’implementazione è benvenuto e verrà utilizzato per aggiornare questo suggerimento in futuro.

Si menziona anche che:

I programmi utente devono essere protetti dai siti che archiviano i dati sotto le origini di altri siti affiliati, ad esempio archiviando fino al limite in a1.example.com, a2.example.com, a3.example.com, ecc., Eludendo il limite di archiviazione esempio.com principale .

Ecco un risultato di test piuttosto dettagliato con molti browser desktop e mobili coperti: http://dev-test.nemikor.com/web-storage/support- test /

Che conferma questo bug report: http://code.google.com/p/chromium/issues/detail?id=58985#c15

È ansible fare affidamento solo su 2,5 MB, non 5 MB, in base alla lunghezza della stringa che è ansible memorizzare.

Ho perso questa domanda quando ho chiesto ” Il 5MB è il limite di fatto per W3C Web Storage? “, Ma ho praticamente trovato la stessa risposta. Se vuoi maggiori informazioni, ho fatto il link ad alcuni limiti specifici del browser nella mia domanda.

Una soluzione migliore è utilizzare [HTML5 IndexedDB per l’archiviazione offline.] 1

Sembra che la sostituzione del vecchio SQL Web (che sembra erroneamente denominata b / c per l’ archiviazione offline ) sia: DB indicizzato, che consente l’archiviazione offline ed è ancora supportato:

IndexedDB è nuovo in HTML5. I database Web sono ospitati e mantenuti all’interno del browser dell’utente. Consentendo agli sviluppatori di creare applicazioni con ricche capacità di interrogazione, è previsto che emerga una nuova generazione di applicazioni web che hanno la capacità di lavorare online e offline .

Maggiori informazioni e un’app di prova su: http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html

Per ottenere 50 MB di spazio di archiviazione, utilizzare il seguente codice

// 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