Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
IndexedDB'yi Angular'da Kullanmak: Schema Versiyonlama, Transaction'lar ve Offline Outbox
IndexedDB'de schema yalnız sürüm artırınca onupgradeneeded içinde değişir ve transaction, IndexedDB dışı bir await'te kendiliğinden commit edilir; bu yüzden ağ işi önce, yazmalar sonra yapılır. Sürüm başına migration'ları, TransactionInactiveError'u, başka sekmenin upgrade'i bloklamasını Chromium ve WebKit'te gösteriyor, Angular'da idb ile okuma listesini ve offline yorumları idempotency key ile çift kayıtsız gönderen bir outbox'ı kuruyoruz.
Tarayıcıda Hangi Storage? localStorage, IndexedDB, Cache API, OPFS, cookieStore ve Kota Yönetimi
Küçük bir tercihi localStorage'a, sorgulanacak kayıtları IndexedDB'ye, HTTP response'larını Cache API'ye, dosyaları OPFS'e, sunucunun da okuyacağı değeri cookieStore'a yazarsın; hepsi origin kotasını paylaşır ve persist() yoksa silinebilir. Chromium 158 ve WebKit 27.2'de localStorage'ın 5 MiB sınırını, Cache API'nin max-age'i yok saymasını, OPFS'in ephemeral oturumda düşmesini, estimate()/persist() sonuçlarını ve Safari'nin 7 günlük silme kuralını gösteriyoruz.