Maison >interface Web >js tutoriel >Comment stocker des données illimitées * dans le navigateur avec indexddb
Cet article explore IndededDB, une API de navigateur robuste pour le stockage de données côté client dépassant la capacité des méthodes alternatives. Les options de stockage de données côté client se sont considérablement développées, offrant des alternatives aux mises à jour de la base de données basées sur le serveur.
Avantages clés de l'indexéddb:
idb
comblent cet écart. Pourquoi choisir le stockage côté client?
Bien que le stockage côté serveur convienne à la plupart des données de l'utilisateur, le stockage côté client est avantageux pour:
Comparaison des API de stockage du navigateur:
Fondamentaux indexés:
IndededDB, standardisé en 2015 (API 2.0 en 2018, API 3.0 en développement), bénéficie d'un large support de navigateur. Cet article se concentre sur les concepts de base:
Exemple de structure de données (note enregistre):
<code class="language-javascript">{ id: 1, title: "My first note", body: "A note about something", date: <date object>, tags: ["#first", "#note"] }</date></code>
indexéddb utilise des événements et des rappels, manquant de promesses natives et d'async / attendre l'assistance (bien que des bibliothèques comme idb
fournissent ceci).
Débogage avec Devtools:
Le navigateur Devtools (onglet d'application dans les navigateurs à base de chrome, stockage dans Firefox) est inestimable pour examiner, modifier et compenser les données indexées.
Vérification de la prise en charge indexée et de l'espace de stockage:
<code class="language-javascript">if ('indexedDB' in window) { // IndexedDB supported } else { console.log('IndexedDB is not supported.'); } (async () => { if (!navigator.storage) return; const estimate = await navigator.storage.estimate(); const available = Math.floor((estimate.quota - estimate.usage) / 1024 / 1024); // Check available space and proceed accordingly })();</code>
Ouverture d'une connexion indexée:
<code class="language-javascript">const dbOpen = indexedDB.open('notebook', 1); dbOpen.onupgradeneeded = event => { const db = dbOpen.result; // Create object stores and indexes here }; dbOpen.onerror = err => { console.error(`indexedDB error: ${err.errorCode}`); }; dbOpen.onsuccess = () => { const db = dbOpen.result; // Use the db connection for further operations };</code>
(Les sections suivantes détaillant les opérations CRUD, les mises à jour du schéma et l'utilisation du curseur sont omises par la brièveté, mais la réponse originale fournit des exemples complets.)
Questions fréquemment posées (FAQ):
La réponse d'origine comprend une section FAQ complète couvrant la taille maximale du stockage, la gestion de grands ensembles de données, le dépassement de limite de stockage, l'augmentation de la limite de stockage, la vérification de l'utilisation, la persistance des données, le stockage d'objets Blob, la sécurité, l'utilisation des travailleurs et la gestion des erreurs. Ceux-ci sont tous traités en détail dans la sortie d'origine.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!