CodeBlanks Logo Icon CodeBlanks

Veritabanı açma

JavaScript kursu · İleri seviye · Ders 85/100

indexedDB.open ile bir veritabanı açmayı ve versiyon değişimini öğrenirsin.

Veritabanını açmak

Bir IndexedDB veritabanını indexedDB.open(name, version) ile açarsın. name veritabanının adı, version ise bir tamsayıdır. Veritabanı yoksa oluşturulur, varsa belirtilen sürümle açılır.

const request = indexedDB.open('NotesDB', 1);

Çağrı bir IDBOpenDBRequest nesnesi döndürür. İşlem tamamlanınca onsuccess, hata oluşursa onerror, yapı değişince onupgradeneeded tetiklenir.

İstek olayları

Açma isteğinin sonucunu olay dinleyicileriyle yakalarsın. request.onsuccess veritabanı başarıyla açılınca, request.onerror bir hata oluşursa, request.onupgradeneeded ise yapı değişince çalışır.

request.onsuccess = function(event) {
  const db = event.target.result;
};

Olay nesnesinin target.result özelliği açık olan IDBDatabase örneğini verir; sonraki işlemlerde bunu kullanırsın.

Uygulama NotesDB'yi aç ve dinleyicileri ata

indexedDB.open ile 'NotesDB' veritabanını sürüm 1 ile aç ve request değişkenine ata. request.onsuccess, request.onerror ve request.onupgradeneeded'a birer fonksiyon ata. onerror içinde console.log ile 'error' yazdır.

Örnek çözümü göster
const request = indexedDB.open('NotesDB', 1);
request.onsuccess = function(event) {};
request.onerror = function(event) {
  console.log('error');
};
request.onupgradeneeded = function(event) {};

Kendini test et

  1. onupgradeneeded olayı ne zaman tetiklenir?

    • Yalnızca veritabanı ilk açıldığında
    • Veritabanı sürümü değiştiğinde ya da ilk oluşturulduğunda
    • Her veri ekleme işleminden sonra
    • Tarayıcı kapatılınca
    Cevabı göster

    Veritabanı sürümü değiştiğinde ya da ilk oluşturulduğunda — Doğru! onupgradeneeded yapı değişikliği için tek güvenli yerdir.

  2. Veritabanını sürüm 2 ile aç

    const request = indexedDB.____('NotesDB', 2);
    Cevabı göster
    const request = indexedDB.open('NotesDB', 2);
  3. Olayları anlamlarıyla eşleştir

    onsuccess
    işlem başarılı
    onerror
    hata oluştu
    onupgradeneeded
    sürüm değişti
    target.result
    veritabanı örneği

İleri seviye bölümündeki tüm dersler