CodeBlanks Logo Icon CodeBlanks

IndexedDB nedir?

JavaScript kursu · İleri seviye · Ders 84/100

IndexedDB'nin ne sağladığını ve localStorage'dan farkını öğrenirsin.

IndexedDB nedir?

IndexedDB, tarayıcıda yapılandırılmış veriyi saklayan yerleşik bir veritabanıdır. localStorage'tan farklı olarak büyük miktarda veriyi, nesneleri ve hatta dosya blob'larını tutabilir. Veriler kalıcıdır: sayfa yenilenince ya da tarayıcı kapatılınca kaybolmaz.

IndexedDB'nin API'si asenkron çalışır; yani işlem bitene kadar sayfayı dondurmaz. Sonuçları request.onsuccess gibi olay (event) dinleyicileriyle alırsın.

localStorage farkı

localStorage basit anahtar-değer çiftleri için uygundur; yalnızca metin saklar ve senkron çalışır. IndexedDB ise nesneleri, dizileri ve blob'ları doğrudan tutabilir, asenkron çalışır ve çok daha büyük veri miktarlarını kaldırır.

localStorage.setItem('theme', 'dark');

Ayarlar gibi küçük değerler için localStorage yeterlidir; notlar, mesajlar veya ürünler gibi zengin veriler için IndexedDB tercih edilir.

Uygulama IndexedDB desteğini denetle

window üzerinde 'indexedDB' özelliğinin varlığını in ile kontrol et. Yoksa console.log ile 'unsupported', varsa 'supported' yazdır.

Örnek çözümü göster
if (!('indexedDB' in window)) {
  console.log('unsupported');
} else {
  console.log('supported');
}

Kendini test et

  1. IndexedDB için hangisi doğrudur?

    • API'si asenkron çalışır, sayfayı dondurmaz
    • Yalnızca metin (string) saklayabilir
    • Veriler tarayıcı kapatılınca silinir
    • Veriler sunucuda tutulur
    Cevabı göster

    API'si asenkron çalışır, sayfayı dondurmaz — Doğru! IndexedDB'nin API'si asenkron çalışır; büyük nesneler tutabilir.

  2. IndexedDB nesnesine eriş

    const idb = window.____;
    Cevabı göster
    const idb = window.indexedDB;
  3. localStorage ve IndexedDB farkları

    localStorage
    yalnızca metin saklar
    IndexedDB
    nesne ve blob saklar
    setItem / getItem
    senkron erişim
    request.onsuccess
    asenkron sonuç

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