Estimateur de taille de charge utile IndexedDB
Estimez gratuitement en ligne l'utilisation du stockage IndexedDB pour vos charges JSON. Notre estimateur de taille de charge utile IndexedDB calcule la taille de sérialisation du clonage structuré — l'algorithme réel qu'utilise IndexedDB — et montre combien la compression LZ-String réduit votre consommation de quota. Il inclut une comparaison de quatre tailles (clonage structuré, JSON brut, UTF-8 et compression LZ-String) avec un indicateur de quota dynamique et un extrait de code IndexedDB prêt à l'emploi. Tout le traitement se fait dans votre navigateur. Sans inscription.
Paste any JSON payload to estimate its IndexedDB storage size using the structured clone algorithm, then compress it with LZ-String to see how much quota you save. All processing happens locally in your browser - your data never leaves your device.
Most space-efficient for string values in IndexedDB. Stores 15 bits per UTF-16 char.
Pourquoi utiliser notre estimateur de taille de charge utile IndexedDB ?
- Estimation précise du stockage IndexedDB : notre estimateur calcule la taille de sérialisation du clonage structuré — l'algorithme réel qu'utilise IndexedDB pour stocker les objets —, y compris le surcoût par type de champ pour les chaînes, nombres, booléens, tableaux et objets imbriqués.
- Compression LZ-String instantanée pour IndexedDB : compressez les charges JSON avec LZ-String directement dans votre navigateur et découvrez les économies de stockage exactes avant d'écrire la moindre ligne de code. Notre estimateur affiche les tailles de sortie UTF-16 et Base64 côte à côte.
- Estimateur de taille de charge utile IndexedDB en ligne et sécurisé : vos charges JSON ne quittent jamais votre appareil. Toute l'estimation du clonage structuré et la compression LZ-String se font localement dans votre navigateur — aucun envoi au serveur, aucun traitement cloud, confidentialité totale pour les données applicatives sensibles.
- Estimateur de taille de charge utile IndexedDB sans installation : estimez le stockage IndexedDB et compressez vos charges directement dans votre navigateur, sans téléchargement, sans plugin et sans compte. Fonctionne sur tout navigateur moderne et tout système d'exploitation.
Cas d'usage courants de l'estimateur de taille de charge utile IndexedDB
- Optimisation du stockage hors ligne des PWA : les applications web progressives qui mettent en cache les réponses d'API dans IndexedDB profitent de la compression LZ-String. Utilisez l'estimateur pour vérifier que votre jeu de données hors ligne tient dans le quota de l'appareil avant de livrer — crucial sur les mobiles à faible stockage.
- Planification du stockage des extensions de navigateur : les extensions Chrome et Firefox utilisent IndexedDB pour le stockage persistant. Utilisez l'estimateur pour mesurer le quota consommé par le modèle de données de votre extension et si la compression LZ-String le maintient dans les limites par extension du navigateur.
- Dimensionnement des schémas de base de données côté client : avant d'implémenter une base côté client avec Dexie.js, PouchDB ou IndexedDB brut, utilisez l'estimateur pour modéliser les schémas de vos object stores et estimer les besoins de stockage totaux pour un jeu de données utilisateur typique.
- Adaptateur IndexedDB pour Redux Persist et Zustand : les bibliothèques de gestion d'état qui persistent dans IndexedDB (redux-persist avec idb-keyval, Zustand avec le middleware persist) peuvent atteindre les limites de quota avec de grands arbres d'état. Utilisez l'estimateur pour mesurer votre état sérialisé et décider si la compression LZ-String est nécessaire.
- Prévention des QuotaExceededError : un QuotaExceededError en production est un plantage pour les utilisateurs. Utilisez l'estimateur pour mesurer proactivement vos plus grosses charges et ajouter la compression LZ-String avant d'atteindre le plafond de quota — surtout sur iOS Safari, dont les limites sont plus strictes.
- Modélisation des données des applications offline-first : les applications offline-first qui synchronisent de grands jeux de données (documents, métadonnées d'images, historique utilisateur) doivent budgétiser soigneusement le stockage. Utilisez l'estimateur pour comparer le stockage brut et compressé de chaque object store et bâtir un budget de quota réaliste.
Qu'est-ce que l'estimation de taille de charge utile IndexedDB ?
IndexedDB est la base de données NoSQL intégrée du navigateur — elle stocke les objets JavaScript à l'aide de l'algorithme de clonage structuré, qui sérialise chaque type de valeur avec un surcoût précis : les chaînes en UTF-16 (2 octets par caractère), les nombres sur 8 octets, les booléens sur 1 octet et les objets/tableaux avec environ 50 octets de surcoût de conteneur chacun. Notre estimateur calcule cette taille de clonage structuré pour toute charge JSON, puis montre combien la compression LZ-String réduit l'empreinte de stockage — pour que vous puissiez décider en connaissance de cause s'il faut compresser vos valeurs IndexedDB avant de les stocker.
Comment fonctionne notre estimateur de taille de charge utile IndexedDB
- 1 Collez votre charge JSON : saisissez tout objet, tableau ou chaîne JSON que vous comptez stocker dans IndexedDB. L'estimateur analyse le JSON et calcule la taille du clonage structuré — vos données ne quittent jamais votre navigateur.
- 2 Choisissez un format de stockage : sélectionnez JSON brut (référence), LZ-String UTF-16 (le plus économe en espace pour les valeurs de chaîne) ou LZ-String Base64 (portable et compatible URL). L'estimateur compresse la charge et affiche les économies de stockage exactes.
- 3 Examinez les métriques et copiez l'extrait : le panneau de métriques affiche la taille du clonage structuré, la taille du JSON brut, la taille UTF-8 et la taille compressée avec des barres visuelles — plus un extrait de code IndexedDB prêt à l'emploi pour le format de compression choisi.
Ce que signifient les métriques de taille
- Taille du clonage structuré : les octets estimés qu'IndexedDB utilise pour stocker l'objet nativement — inclut le surcoût par type de champ pour les chaînes (UTF-16), les nombres (8 octets), les booléens (1 octet) et le surcoût de conteneur des objets et tableaux.
- Chaîne JSON brute : la taille en octets de JSON.stringify(data) stockée comme chaîne UTF-16 dans IndexedDB — souvent plus petite que le clonage structuré pour les objets profondément imbriqués.
- Octets UTF-8 : la taille en octets si le JSON était stocké en UTF-8 (par exemple dans un Blob ou un ArrayBuffer) — utile pour comparer avec le stockage côté serveur.
- Compressé avec LZ-String : la taille en octets après compression LZ-String — généralement 50 à 80 % plus petite que le JSON brut pour les structures répétitives comme les tableaux d'objets similaires.
Limites importantes
L'estimation de la taille du clonage structuré est une approximation — le surcoût réel du moteur du navigateur varie selon le navigateur et la version. Le V8 de Chrome et le SpiderMonkey de Firefox utilisent des représentations internes différentes. Pour des mesures précises, utilisez navigator.storage.estimate() avant et après l'écriture dans IndexedDB dans votre application réelle. Le quota IndexedDB est dynamique — généralement 50 % de l'espace disque disponible — et varie beaucoup entre navigateurs de bureau, navigateurs mobiles et iOS Safari (limites plus strictes d'environ 50 Mo par origine).
Foire aux questions
Un estimateur de taille de charge utile IndexedDB calcule l'espace de stockage qu'une charge JSON consommera dans IndexedDB via l'algorithme de clonage structuré, et montre combien la compression LZ-String réduit cette empreinte. Notre estimateur en ligne gratuit fonctionne entièrement dans votre navigateur.
L'estimation est précise à ±20 % près pour les charges JSON courantes. Elle tient compte du stockage des chaînes en UTF-16, des nombres sur 8 octets, des booléens sur 1 octet et d'environ 50 octets de surcoût de conteneur par objet ou tableau. Pour des mesures précises, utilisez navigator.storage.estimate() dans votre application.
Absolument. Notre estimateur traite tout localement dans votre navigateur. Vos charges JSON ne sont jamais envoyées à un serveur, jamais stockées et ne quittent jamais votre appareil.
Oui — 100 % gratuit, pour toujours. Sans inscription, sans compte, sans offre premium, sans limite de taille de données et sans publicité qui interrompt votre travail.
Le quota IndexedDB est dynamique — les navigateurs allouent généralement 50 % de l'espace disque disponible, avec un minimum d'environ 50 Mo par origine. iOS Safari applique des limites plus strictes (environ 50 Mo par origine). Utilisez navigator.storage.estimate() à l'exécution pour obtenir le quota exact sur l'appareil de l'utilisateur.
Utilisez LZ-String UTF-16 pour une efficacité d'espace maximale — il stocke 15 bits par caractère UTF-16, ce qui en fait l'option la plus compacte pour les valeurs de chaîne dans IndexedDB. Utilisez Base64 si vous avez besoin d'un format portable et compatible avec les URL.
LZ-String atteint généralement une réduction de 50 à 80 % sur des données JSON répétitives — les tableaux d'objets similaires, les objets de configuration aux clés répétées et les préférences utilisateur se compressent le plus agressivement.
L'assistant de compression LocalStorage se concentre sur la limite de 5 Mo de localStorage. L'estimateur de taille de charge utile IndexedDB ajoute l'estimation de la taille du clonage structuré et affiche une comparaison de quatre tailles avec un indicateur de quota dynamique.
Oui. Toutes ces bibliothèques utilisent IndexedDB en interne. Compressez vos valeurs avec LZ-String avant de les passer à put() ou add(), puis décompressez-les à la lecture avec get(). L'outil fournit un extrait de code prêt à l'emploi.