Transaksjoner og CRUD
Legg til, les, oppdater og slett poster.
Transaksjoner og CRUD er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 2 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.
Alt er en transaksjon
I IndexedDB skjer alle lesinger og skrivinger inne i en transaksjon. En transaksjon samler operasjoner slik at de enten alle lykkes eller alle rulles tilbake, noe som holder dataene konsistente.
Starte en transaksjon
Opprett en med db.transaction(storeNames, mode). Modusen er 'readonly' (standard) eller 'readwrite' for endringer.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');Hente objektlageret
Fra transaksjonen henter du objektlageret du vil arbeide med, via tx.objectStore(name). Alle CRUD-metodene finnes på dette lageret.
const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');
// store.add / get / put / deleteLegge til poster
store.add(value) setter inn en ny post. Operasjonen mislykkes hvis det allerede finnes en post med samme nøkkel, noe som beskytter mot utilsiktet overskriving.
const store = tx.objectStore('notes');
const req = store.add({ id: 1, text: 'Buy milk' });
req.onsuccess = () => console.log('added with key', req.result);Lese en post
store.get(key) henter én post ved hjelp av nøkkelen. Resultatet kommer i forespørselens onsuccess som request.result (undefined hvis posten ikke finnes).
const req = store.get(1);
req.onsuccess = () => {
console.log('record:', req.result);
};Oppdatere med put
store.put(value) setter inn eller erstatter en post. I motsetning til add overskriver den en eksisterende post med samme nøkkel, noe som gjør den velegnet til oppdateringer.
store.put({ id: 1, text: 'Buy milk and eggs' });
// Replaces the existing record with id 1.Slette en post
store.delete(key) fjerner posten med den angitte nøkkelen. Operasjonen lykkes selv om det ikke finnes noen slik post.
const req = store.delete(1);
req.onsuccess = () => console.log('deleted');Tømme et objektlager
store.clear() fjerner alle poster i objektlageret samtidig. Bruk den til å tilbakestille bufrede data.
store.clear();
// All records in 'notes' are removed.Fullføring av transaksjonen
Selve transaksjonen utløser oncomplete når alle operasjonene er bekreftet, og onerror eller onabort hvis noe mislykkes. Bruk oncomplete for å vite at skrivingene er varig lagret.
tx.oncomplete = () => console.log('all changes saved');
tx.onerror = () => console.log('transaction failed');Automatisk commit
Transaksjoner committer automatisk når kontrollen går tilbake til hendelsesløkken og ingen forespørsler venter. Du kan ikke holde en åpen gjennom await av annet asynkront arbeid; utfør alle lageroperasjonene samlet.
// Queue operations synchronously within the same tx:
store.add({ id: 2, text: 'A' });
store.add({ id: 3, text: 'B' });
// Both commit together when tx completes.CRUD-oppsummering
De fire kjerneoperasjonene samsvarer direkte:
- Opprette:
add - Lesing:
get - Oppdatere:
put - Slette:
delete
Alt skjer i en transaksjon som garanterer konsistens.
Hurtigsjekk
Test forståelsen Deres av transaksjoner og CRUD.
Oppsummering
De har lært om transaksjoner og CRUD:
- Start med
db.transaction(store, mode). - Hent objektlageret med
tx.objectStore(name). addsetter inn,getleser,putsetter inn eller oppdaterer, ogdeletefjerner.- Resultatene kommer i hver forespørsel sin
onsuccess. tx.oncompletebekrefter at endringene er lagret.
Deretter skal vi se på indekser og spørringer.
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 «Transaksjoner og CRUD» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Transaksjoner og CRUD», 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 «Transaksjoner og CRUD»?
Legg til, les, oppdater og slett poster. 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 2 av 4.
Hvor lang tid tar leksjonen «Transaksjoner og CRUD»?
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.
Alle leksjonene i dette kurset
- Åpne en database
- Transaksjoner og CRUD
- Indekser og spørringer
- Versjonering og oppgraderinger