JavaScript

JavaScript’te İstemci Tarafı Veri Depolama: Web Depolama ve IndexedDB

Spread the love

Verileri kalıcı olarak saklamak birçok web uygulaması için çok önemlidir. JavaScript esas olarak tarayıcı içinde çalışırken, dosya verisi yazımını yerel olarak veya uzak bir sunucuda sağlayan çeşitli yöntemler mevcuttur. Bu makale, istemci tarafı depolamaya, özellikle çok yönlü HTML5 Web Depolama API’sı ve daha sağlam IndexedDB API’sını kullanmaya odaklanmaktadır. Daha büyük dosyalar veya sunucu tarafı kalıcılık gerektiren durumlar için, sunucu tarafı teknolojileri ve API’lerini kullanmanız gerekir; bu konu bu makalenin kapsamı dışındadır.

İçindekiler

HTML5 Web Depolama API’sini Kullanma

HTML5 Web Depolama API’sı, verileri anahtar-değer çiftleri olarak saklamak için localStorage ve sessionStorage sunar. Temel ayrım, ömürlerinde yatmaktadır:

  • localStorage: Veriler tarayıcı oturumları arasında kalır, ayarlar ve tercihler için idealdir.
  • sessionStorage: Veriler yalnızca tek bir tarayıcı sekmesinde veya penceresinde kullanılabilir, geçici oturum özel veriler için uygundur.

Her ikisi de aynı yöntemleri kullanır:

  • setItem(key, value): Verileri depolar. Anahtar bir dizedir; değer dizeleştirilmiştir.
  • getItem(key): Verileri alır; anahtar yoksa null döndürür.
  • removeItem(key): Belirli bir öğeyi kaldırır.
  • clear(): Tüm öğeleri kaldırır.

Örnek (localStorage):


// Kullanıcı verilerini depola
localStorage.setItem('userName', 'Jane Doe');
localStorage.setItem('theme', 'light');

// Kullanıcının adını al ve görüntüle
let userName = localStorage.getItem('userName');
console.log(userName); // Çıktı: Jane Doe

// Mevcut anahtar olup olmadığını kontrol et
if (localStorage.getItem('theme')) {
    console.log("Tema tercihi bulundu!");
}

// Belirli bir öğeyi kaldır
localStorage.removeItem('theme');

// Tüm verileri temizle
localStorage.clear();

Örnek (sessionStorage): Yukarıdaki örnekte localStorage yerine sessionStorage kullanın.

Web Depolamanın Sınırlamaları:

  • Boyut sınırlamaları: Genellikle köken başına yaklaşık 5MB.
  • Güvenlik: Yalnızca aynı köken içinde erişilebilir; hassas veriler için uygun değildir.

Daha Büyük Veri Kümeleri için IndexedDB’yi Kullanma

IndexedDB, modern tarayıcılara yerleşik güçlü bir NoSQL veritabanıdır ve Web Depolama’dan önemli ölçüde daha büyük veri kümelerine ve daha karmaşık veri yapılarını sağlar. Senkron olmayan işlemler kullanır ve daha yapılandırılmış bir yaklaşım gerektirir, ancak ölçeklenebilirlik ve esneklik sunar.

Temel IndexedDB Kullanımı:

IndexedDB, bir veritabanı açmayı, nesne depoları (tablolar) oluşturmayı ve ardından CRUD (Oluştur, Oku, Güncelle, Sil) işlemlerini gerçekleştirmeyi içerir. Senkron olmayan işlemler, vaatler veya geri aramalar kullanılarak işlenir.

Not: Ayrıntılı IndexedDB uygulaması, bu özlü genel bakışın kapsamının ötesindedir, ancak çevrimiçi olarak çok sayıda öğretici mevcuttur.

Etkin Veri Yönetimi Stratejileri

Doğru depolama mekanizmasının seçimi, uygulamanızın ihtiyaçlarına bağlıdır. Küçük miktarda basit veri için Web Depolama uygundur. Daha büyük veri kümeleri veya karmaşık veri yapıları için IndexedDB üstün ölçeklenebilirlik ve işlevsellik sağlar. Her zaman güvenlik etkilerini göz önünde bulundurun ve uygun hata yönetimini uygulayın. Kullanıcı geri bildirim mekanizmaları, kullanıcıları depolama ile ilgili sorunlar hakkında uyarmalıdır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir