Question

Les bases de données localStorage HTML5 sont généralement limitées taille - dimensions standard sont 5 ou 10 Mo par domaine. Ces limites peuvent être contournées par des sous-domaines (par exemple example.com, hack1.example.com et hack2.example.com ont tous leurs propres bases de données de 5 Mo)? Et il n'y a rien dans la norme qui spécifie si les domaines parents peuvent accéder aux bases de données de leurs enfants? Je ne peux pas trouver quoi que ce soit, et je vois des arguments pour ce faire de toute façon, mais il semble que il doit y avoir un modèle standard.

Était-ce utile?

La solution

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

  

Une limite essentiellement arbitraire de cinq méga-octets par origine est recommandée. commentaires de mise en œuvre est la bienvenue et sera utilisé pour mettre à jour cette suggestion à l'avenir.

Il mentionne également que:

  

Les agents utilisateurs doivent se prémunir contre les sites de stockage des données sous les origines   d'autres sites affiliés, par exemple le stockage jusqu'à la limite de   a1.example.com, a2.example.com, a3.example.com, etc, contournent la   principale limite de stockage de example.com.

Autres conseils

Voici un test assez détaillé avec beaucoup de bureau et les navigateurs mobiles couverts: http://dev-test.nemikor.com/web-storage/support-test/

Ce qui confirme ce rapport de bogue: http: // code. google.com/p/chromium/issues/detail?id=58985#c15

Vous pouvez compter sur seulement 2,5 Mo, pas 5MB, en fonction de la longueur de la chaîne que vous pouvez stocker.

Je manqué cette question quand j'ai demandé « Est 5MB la limite de facto pour le W3C Web de stockage? », mais je suis arrivé essentiellement la même réponse. Si vous voulez plus d'informations, je l'ai fait lien vers certaines limites spécifiques du navigateur de ma question.

Une meilleure solution est d'utiliser le [HTML5 IndexedDB pour le stockage hors ligne.] 1

Il semble que le remplacement de l'ancien Web SQL (qui semble être mal nommé b / c il est pour stockage hors connexion ) est la suivante: Indexed DB, ce qui permet le stockage hors ligne et est encore supportd:

  

IndexedDB est nouvelle en HTML5. Les bases de données Web sont hébergés et ont persisté   à l'intérieur du navigateur d'un utilisateur. En permettant aux développeurs de créer des applications   avec les possibilities de la requête, il est prévu qu'une nouvelle race de web   applications émergeront qui ont la capacité de travailler en ligne et    hors ligne .

Plus d'infos et un test app à: http://ido-green.appspot.com/WebSQL-IndexedDB-example /jqm_indexedDB.html

Pour obtenir 50 Mo de code d'utilisation de l'espace de stockage ci-dessous

// 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);
});
source

https://github.com/DVLP/localStorageDB

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top