Åpne en database
Opprett databaser og objektlagre.
Åpne en database er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva er IndexedDB?
IndexedDB er en database med stor kapasitet og transaksjonsstøtte som er innebygd i nettleseren. I motsetning til localStorage (liten, bare for strenger og synkron) lagrer den strukturerte objekter, støtter indekser og fungerer asynkront.
Åpne en database
Du åpner eller oppretter en database med indexedDB.open(name, version). Metoden returnerer et forespørselsobjekt der hendelser rapporterer om det lykkes eller mislykkes.
const request = indexedDB.open('notes-db', 1);Forespørselshendelsene
En åpningsforespørsel utløser hendelser som du håndterer:
onsuccess— databasen er klaronerror— åpningen mislyktesonupgradeneeded— skjemaet må opprettes eller oppgraderes
request.onsuccess = (e) => {
const db = e.target.result;
console.log('database opened');
};
request.onerror = (e) => {
console.log('open failed:', e.target.error);
};onupgradeneeded
onupgradeneeded kjøres når databasen opprettes for første gang, eller når versjonsnummeret økes. Dette er det eneste stedet der du kan endre skjemaet (opprette eller slette objektlagre og indekser).
request.onupgradeneeded = (e) => {
const db = e.target.result;
// create object stores here
};Objektlagre
Et objektlager er omtrent som en tabell: en beholder for poster. Opprett et med db.createObjectStore(name, options) inne i onupgradeneeded.
request.onupgradeneeded = (e) => {
const db = e.target.result;
db.createObjectStore('notes', { keyPath: 'id' });
};keyPath
keyPath angir hvilken egenskap i hvert objekt som er primærnøkkelen. Lagrede objekter må ha denne egenskapen, og nøklene må være unike.
db.createObjectStore('users', { keyPath: 'email' });
// Each stored user object must have a unique 'email'.Nøkler med automatisk inkrementering
Hvis objektene dine ikke har en naturlig nøkkel, kan du la IndexedDB generere en med autoIncrement: true. Hver nye post får det neste heltallet.
db.createObjectStore('logs', {
keyPath: 'id',
autoIncrement: true
});
// id is assigned automatically on add().Kontrollere eksisterende objektlagre
Siden onupgradeneeded kjøres ved hver versjonsøkning, bør du kontrollere opprettelsen med db.objectStoreNames.contains for å unngå feil ved nye kjøringer.
request.onupgradeneeded = (e) => {
const db = e.target.result;
if (!db.objectStoreNames.contains('notes')) {
db.createObjectStore('notes', { keyPath: 'id' });
}
};Ta vare på db-referansen
Lagre databaseobjektet fra onsuccess slik at senere operasjoner kan bruke det. Alle lesinger og skrivinger går gjennom denne db-instansen.
let db;
request.onsuccess = (e) => {
db = e.target.result; // reuse for transactions
};Håndtere blokkert åpning
Hvis en annen fane har en eldre versjon åpen, kan en oppgradering bli blocked. Lytt etter onblocked og be brukeren lukke andre faner.
request.onblocked = () => {
console.log('Close other tabs to upgrade the database.');
};Åpningsforløpet
Slik åpner du IndexedDB: kall open med et navn og en versjon, opprett skjemaet i onupgradeneeded, og hent deretter db i onsuccess. Derfra kan du kjøre transaksjoner for å lese og skrive data.
Hurtigsjekk
Test forståelsen din av hvordan du åpner en database.
Oppsummering
Du har lært å åpne en IndexedDB-database:
indexedDB.open(name, version)returnerer en forespørsel.- Opprett objektlagre bare i
onupgradeneeded. keyPathangir primærnøkkelen;autoIncrementgenererer nøkler.- Lagre
dbfraonsuccessfor senere bruk. - Håndter
onerrorogonblocked.
Deretter ser vi på transaksjoner og CRUD-operasjoner.
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 59
- Leksjoner
- 200
Ofte stilte spørsmål
Er leksjonen «Åpne en database» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Åpne en database», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Åpne en database»?
Opprett databaser og objektlagre. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med JavaScript Academy?
Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Åpne en database»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?
Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.