Les bases de données localStorage de HTML5 sont généralement limitées en taille - les tailles standard sont de 5 ou 10 Mo par domaine. Ces limites peuvent-elles ê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 y a-t-il quelque chose dans la norme qui spécifie si les domaines parents peuvent accéder aux bases de données de leurs enfants ? Je ne trouve rien, et je peux voir des arguments pour le faire de l'une ou l'autre façon, mais il semble qu'il doit y avoir un modèle standard.
Réponses
Trop de publicités?De http://dev.w3.org/html5/webstorage/#disk-space
Il est recommandé de fixer une limite, le plus souvent arbitraire, de cinq mégaoctets par origine. Les commentaires sur la mise en œuvre sont les bienvenus et seront utilisés pour mettre à jour cette suggestion à l'avenir.
Il mentionne également que :
Les agents utilisateurs doivent se prémunir contre les sites stockant des données sous les origines d'autres sites affiliés, par exemple en stockant jusqu'à la limite en a1.exemple.com, a2.exemple.com, a3.exemple.com, etc., contournant ainsi l'obligation d'enregistrement de l'origine. en contournant la limite de stockage principale de example.com.
Voici le résultat d'un test assez détaillé couvrant de nombreux navigateurs de bureau et mobiles : http://dev-test.nemikor.com/web-storage/support-test/
Ce qui confirme ce rapport de bug : http://code.google.com/p/chromium/issues/detail?id=58985#c15
Vous ne pouvez compter que sur 2,5 Mo, et non 5 Mo, en fonction de la longueur de chaîne que vous pouvez stocker.
J'ai manqué cette question lorsque j'ai demandé " 5 Mo est-il la limite de facto pour le stockage Web du W3C ? "mais j'ai obtenu pratiquement la même réponse. Si vous voulez plus d'informations, j'ai indiqué dans ma question les limites spécifiques de certains navigateurs.
Une meilleure solution consiste à utiliser le [HTML5 IndexedDB pour le stockage hors ligne]. 1
Il semble que ce soit le remplacement de l'ancien Web SQL (qui semble mal nommé car il s'agit d'un logiciel pour hors ligne stockage) est : DB indexée, qui permet le stockage hors ligne et est toujours supportée :
IndexedDB est nouveau dans HTML5. Les bases de données Web sont hébergées et persistantes dans le navigateur de l'utilisateur. En permettant aux développeurs de créer des applications avec des capacités d'interrogation riches, il est prévu qu'une nouvelle race d'applications web d'applications Web qui pourront fonctionner en ligne et en temps réel. hors ligne .
Plus d'informations et une application de test à l'adresse suivante http://www.html5rocks.com/en/tutorials/indexeddb/todo/
Si votre objectif final est de stocker plus de 5 Mo, vous devriez envisager d'utiliser le WebStorage de HTML5. Voici un tutoriel sur la façon de l'utiliser :
http://www.html5rocks.com/tutorials/webdatabase/todo/
En reprenant l'exemple ci-dessus, si vous vouliez augmenter la taille de votre base de données à 15 Mo, vous utiliseriez le code suivant :
var dbSize = 15 * 1024 * 1024; // 15MB