IndexedDb – Dixie.js Nedir – Ön Hazırlık – 1

Yazılım projelerinde veritabanları çok önemlidir. Bunun yanında getirdiği birkaç problem vardır. İlk olarak hız konusu gündemde kalır. Hız önemlidir. Hatta bazen önemini sözlerle bile anlatamayız. Biraz abartı olabilecek belki ama ölüm / kalım meselesi bile olabilir hız konusu.  Neyse..

Bir projemizde ekran üzerinde birçok işlem yapıldıktan sonra düzenleme işlemleri bitip “Kaydet” butonuna tıklanıldığında işlemlerin yapılması gerekiyor. Proje Web üzerinde yürüdüğü için bize gerekenler şunlar;

  • Tarayıcı üzerinde bilgi saklanmalı
  • Javascript olarak üzerinde ekleme, silme, arama işlemleri ( database işlemleri gibi )
  • Tarayıcı kapanırsa açıldığında tekrar kaldığı yerden bilgiler devam etmeli
  • Hızlı ve esnek olmalı
  • Ek olarak bizi yormayacak şekilde olması lazım tabiki 🙂

Araştırmalarım sonucu olarak IndexedDb ile tanışmış olup kullanmaya çalıştım. IndexedDb tarafında sıfırdan kütüphane yazmak yerine de var olan kütüphanelerden Dixie.JS hoşuma gitti ve kullanmaya başladım.

Sonuç olarak IndexedDb tarayıcı üzerinde yaklaşık olarak 2GB’a kadar veri saklayabiliyor. Klasik veritabanlarında kullanmış olduğumuz veri türleri, tablo mantığı ve index gibi birçok detay kendisinde yer almaktadır.

Dixie.JS ile birlikte ilk kurulum ve bağlantılarımızı sağlayalım;

Bu sayfa üzerinden sisteminize veya direkt olarak sayfanıza Dixie.JS’i dahil edebilir ve kullanabilirsiniz.

https://npmcdn.com/dexie/dist/dexie.min.js


// tarayıcının indexedDB desteği olup olmadığının kontrolü
if ( !window.indexedDB )
{
alert( 'Tarayıcı da indexexDB desteği bulunmamaktadır.' );
return false;
}

// veritabanı oluşturuyoruz.
var db = new Dexie( "database_adi" );

// tablomuzu oluştururuz. string ifade ile belirtilen yer ise tablomuzun kolonlarıdır.
db.version( 2 ).stores( { tablo_adi: '++id,adi,soyadi,yas,memleket' });

Her “new” işleminde yeniden oluşturmuyor var ise sadece connection open yapıyor.  Versiyon seçimi sonrası tablo oluşturuyoruz. Tablo adı belirleyip tırnak içerisinde string ifade olarak alanlarımızı belirtiyoruz. Bu alanların özel tanımları da mevcut. “++” işlemi ile ID’nin auto increment ( otomatik artan ) olduğunu belirtiyoruz.

Sonraki yazı da birkaç örnek ( ekleme, silme vb. ) kodlama yapıp nerelerde işe yaracaktır gibi konulardan bahsetmek istiyorum.

Diğer Kaynaklar;

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB
https://developers.google.com/web/ilt/pwa/working-with-indexeddb
https://dexie.org/docs/

“#evdekal”

“IndexedDb – Dixie.js Nedir – Ön Hazırlık – 1” için 2 yanıt

  1. Uğur bey merak ettiğim şey şu, siteye giren her kullanıcı için bi veritabanı oluşturuyoruz. bu veritabanı ona özel oluyor değil mi ? Site çöksede onların bilgileri manüpüle edilemiyor sanırım. çünkü A kullanıcısının veritabanında B kullanıcısı verilerini görmek istemiyorum 😀

    1. Merhaba Gökhan bey,
      Yorumunuz için teşekkürler.
      Browser ( Tarayıcı ) bazlı bir veritabanı olduğu için her bir browser agent’ine veritabanı oluşacaktır.
      Ziyaretçiler farklı bir ziyaretçinin veritabanını göremez.
      Fakat tavsiyem şu olacaktır. Normal veritabanları ile karıştırmayınız. Veri kayıpları yüksek olacaktır.
      Çünkü Cookieler temizlendiğinde herşey temizlenecektir.

Bir Cevap Yazın

%d blogcu bunu beğendi: