0Pricing
JavaScript Academy · Lezione

Transazioni e CRUD

Aggiunga, legga, aggiorni ed elimini record.

Transazioni e CRUD è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 4 lezioni in totale.

Tutto è una transazione

In IndexedDB, tutte le letture e le scritture avvengono all'interno di una transazione. Una transazione raggruppa le operazioni affinché vengano completate tutte con successo oppure annullate tutte, mantenendo coerenti i dati.

Avvio di una transazione

Ne crei una con db.transaction(storeNames, mode). La modalità è 'readonly' (predefinita) oppure 'readwrite' per le modifiche.

const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');

Recupero dell'archivio di oggetti

Dalla transazione, recuperi l'archivio di oggetti con cui desidera lavorare tramite tx.objectStore(name). Tutti i metodi CRUD si trovano in questo archivio.

const tx = db.transaction('notes', 'readwrite');
const store = tx.objectStore('notes');
// store.add / get / put / delete

Aggiunta di record

store.add(value) inserisce un nuovo record. L'operazione non riesce se esiste già un record con la stessa chiave, proteggendo così dalle sovrascritture accidentali.

const store = tx.objectStore('notes');
const req = store.add({ id: 1, text: 'Buy milk' });
req.onsuccess = () => console.log('added with key', req.result);

Lettura di un record

store.get(key) recupera un record tramite la relativa chiave. Il risultato arriva in onsuccess della richiesta come request.result (undefined se il record non viene trovato).

const req = store.get(1);
req.onsuccess = () => {
  console.log('record:', req.result);
};

Aggiornamento con put

store.put(value) inserisce o sostituisce un record. A differenza di add, sovrascrive un record esistente con la stessa chiave, risultando ideale per gli aggiornamenti.

store.put({ id: 1, text: 'Buy milk and eggs' });
// Replaces the existing record with id 1.

Eliminazione di un record

store.delete(key) rimuove il record con la chiave indicata. L'operazione riesce anche se non esiste alcun record corrispondente.

const req = store.delete(1);
req.onsuccess = () => console.log('deleted');

Svuotamento di un archivio

store.clear() rimuove contemporaneamente tutti i record dall'archivio di oggetti. Lo utilizzi per reimpostare i dati memorizzati nella cache.

store.clear();
// All records in 'notes' are removed.

Completamento della transazione

La transazione genera l'evento oncomplete quando tutte le sue operazioni sono state confermate, e onerror o onabort se qualcosa non riesce. Utilizzi oncomplete per sapere che le scritture sono state salvate in modo permanente.

tx.oncomplete = () => console.log('all changes saved');
tx.onerror = () => console.log('transaction failed');

Comportamento di auto-commit

Le transazioni eseguono automaticamente il commit quando il controllo torna al ciclo degli eventi senza richieste in sospeso. Non è possibile mantenere aperta una transazione durante un await di un'operazione asincrona non correlata: esegua tutte le operazioni sull'archivio insieme.

// 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.

Riepilogo CRUD

Le quattro operazioni fondamentali corrispondono in modo diretto:

  • Create: add
  • Read: get
  • Update: put
  • Delete: delete

Il tutto all'interno di una transazione che garantisce la coerenza.

Verifica rapida

Metta alla prova la Sua comprensione delle transazioni e di CRUD.

Riepilogo

Ha imparato a usare le transazioni e CRUD:

  • Inizi con db.transaction(store, mode).
  • Ottenga l'object store con tx.objectStore(name).
  • add inserisce, get legge, put inserisce o aggiorna, delete rimuove.
  • I risultati arrivano nell'handler onsuccess di ogni richiesta.
  • tx.oncomplete conferma che le modifiche sono state salvate.

Ora vediamo gli indici e le query.

Domande Frequenti

La lezione «Transazioni e CRUD» è gratuita?

Sì — il testo completo di «Transazioni e CRUD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 4 lezioni in totale.

Cosa imparerò in «Transazioni e CRUD»?

Aggiunga, legga, aggiorni ed elimini record. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Transazioni e CRUD»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?

Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Aprire un database
  2. Transazioni e CRUD
  3. Indici e query
  4. Versionamento e aggiornamenti
← Torna a JavaScript Academy