web-dev-qa-db-fra.com

Taille maximale de l'élément dans IndexedDB

Je travaille sur un simple utilitaire Web qui utilise la fonctionnalité IndexedDB (similaire à une base de données de valeurs-clés) de HTML5.

Je cherchais mais je n'étais pas en mesure de savoir: quelle est la taille maximale que je peux stocker dans un article?

44
EricSonaron

Je ne pense pas qu'il y ait une limite spécifique pour la taille d'un seul article, seulement une limite globale.

Les règles concernant la limite globale ont changé depuis que cette réponse a été écrite à l'origine. les documents à jour sont sur MDN - selon l'espace disque disponible, la limite de "groupe" (pour le domaine donné, y compris tous ses sous-domaines) peut aller de 10 Mo à 2 Go.


L'ancienne réponse - obsolète avec la sortie de Firefox 38 (2015-05), qui supprimé dom.indexedDB.warningQuota :

D'après une réponse de mbrubeck sur support.mozilla.com (j'ai remplacé les liens qu'il a fournis avec perma-versions):

Par défaut dans Firefox 4, un site peut utiliser jusqu'à 50 Mo de stockage IndexedDB. S'il essaie d'utiliser plus de 50 Mo, Firefox demandera à l'utilisateur la permission: http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js#101

Dans Firefox pour appareils mobiles (Google Android et Nokia Maemo), Firefox demandera la permission si un site essaie d'utiliser plus de 5 Mo: http://mxr.mozilla.org /mozilla-central/source/mobile/app/mobile.js#571 [...]

Si l'utilisateur autorise un site à dépasser le quota de 50 Mo IndexedDB, alors, autant que je sache, Firefox n'impose plus de limites. Les seules limites à la taille de la base de données IndexedDB seront l'espace disque et le système d'exploitation de l'utilisateur.

Le quota localStorage est de 5000 Ko, et il n'y a aucun moyen pour un site Web de demander au navigateur l'autorisation de stocker plus que ce montant dans localStorage.

38
Nickolay

Ajout aux réponses de Nickolay, voici la description de la capacité IndexedDB dans Chrome et IE

  • Chrome (Desktop) : Par défaut, pour les applications Web chrome ne demande pas à l'utilisateur de stocker des données à l'aide de API indexedDB. Elle utilise le concept de pool partagé, voici la description complète - Chrome HTML5 Offline Storage

  • Chrome pour Android : impossible de trouver un lien officiel pour indiquer le quota. Mais d'après mon expérience, j'ai enregistré 300 Mo de données sans aucune invite. Très probablement le même comportement que Desktop Chrome.

  • Internet Explorer 10 : par défaut, l'utilisateur est invité à stocker 10 Mo. 250 Mo par domaine est la limite fixe par défaut, mais l'utilisateur peut configurer ses propres limites jusqu'à 1 Go.
22
GemK