Quelle est la limite logicielle (à laquelle l'utilisateur doit autoriser le dépassement)? Quelle est la limite maximale (maximum autorisé).
Attention - ces informations sont obsolètes - voir autre réponse ci-dessous.
Chrome a une limite souple de 5 Mo avant d'atteindre un QUOTA_ERR
. Voici une référence MDN à ce fait.
Le spec mentionne un QuotaExceededError
mais ne semble rien dire quand il doit être lancé.
QuotaExceededError L'opération a échoué car il n'y avait pas assez d'espace de stockage restant, ou le quota de stockage a été atteint et l'utilisateur a refusé de donner plus d'espace à la base de données.
Je n'ai pas entendu parler d'une limite stricte et n'en ai pas atteint une dans mon propre développement. La performance devrait aller assez loin au sud avant de l'atteindre.
La règle générale est de 6% (modifier 2015-juil: 10%) de l'espace disponible sur le disque dur de l'utilisateur, moins si votre Origin utilise websql, appcache ou l'api du système de fichiers. Le document MDN mentionnant 5 Mo était obsolète et a été mis à jour. Les détails sanglants sur la politique actuelle sont ici: https://developer.chrome.com/apps/offline_storage
Notez quelques subtilités gênantes:
Vérifiez le quota avec le code suivant dans chrome> outils de développement (F12)> console
// Request storage usage and capacity left
window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY,
//the type can be either TEMPORARY or PERSISTENT
function(used, remaining) {
console.log("Used quota: " + used + ", remaining quota: " + remaining);
}, function(e) {
console.log('Error', e);
} );
IndexedDB reçoit de la mémoire du stockage "TEMPORAIRE" de Google Chrome. Le stockage temporaire sur Chrome a un quota par défaut de 50% de l'espace disque disponible, dont 20% est disponible pour votre application hors ligne. Demander plus de quota par rapport au stockage temporaire ne fait rien.
Sur la base de ce qui précède, les réponses à vos questions seraient:
Vous pouvez utiliser l'outil Browser Storage Abuser (cité dans l'article this HTML5Rocks qui a documenté les résultats pour différents navigateurs) pour déterminer le stockage temporaire disponible sur le Chrome vous courez.
Je n'ai pas assez SO réputation pour publier plus de liens mais l'article HTML5Rocks ci-dessus sur la recherche de quotas contient suffisamment de détails pour vous aider à identifier le type de stockage approprié (TEMPORAIRE ou PERSISTANT) et le mécanisme de stockage approprié ( si vous n'avez pas nécessairement mis à zéro sur IndexedDB) comme cela peut convenir à votre application.
La question porte sur Chrome et IndexedDB balisés. Et je suppose qu'il s'agit de sites Web, et non Chrome extensions ou applications (qui permettent un stockage illimité pour IndexedDB).
Pour les sites Web, IndexedDB est une API pour Chrome stockage temporaire ( source ). La question porte donc sur le quota de stockage temporaire dans Chrome .
Dans Chrome 67, le comportement de quota a changé, et ce n'est pas vraiment documenté sauf dans n rapport de bogue . Pris ensemble, le comportement de quota actuel est:
En Chrome Mode normal
Pour API hors ligne (Cache d'application, système de fichiers, IndexedDB, WebSQL):
Si la valeur "devrait rester disponible" est atteinte, le quota pour une origine ("site") sera nul. La valeur "devrait rester disponible" se rapporte à l'espace à garder libre sur le stockage de masse. Depuis Chrome 67, il s'agit de la valeur inférieure de "2 Gio" et de "10% de la capacité totale de stockage de masse" ( source ). Une fois cette limite atteinte, les écritures supplémentaires dans le stockage temporaire échoueront, mais les données existantes dans le stockage temporaire ne seront pas supprimées.
Si la valeur "devrait rester disponible" n'est pas encore atteinte, le quota sera de 20% du pool partagé ( source ). Cela signifie (probablement) "20% de toutes les données du stockage temporaire déjà enregistrées par Chrome, plus toutes les données que Chrome peut enregistrer dans le stockage local sans atteindre la valeur" devrait rester disponible ").
Pour API de stockage Web (LocalStorage, SessionStorage,…): 5 Mio fixes ( source ); Je ne sais pas si cela est affecté par la limite "devrait rester disponible" documentée ci-dessus.
En Chrome Mode navigation privée