Veritabanı Açma
Veritabanları ve nesne depoları oluşturun.
Veritabanı Açma, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.
IndexedDB Nedir
IndexedDB, tarayıcıya yerleşik, yüksek kapasiteli ve işlemsel bir veritabanıdır. localStorage'dan (küçük, yalnızca dize tutan ve eşzamanlı çalışan) farklı olarak yapılandırılmış nesneleri depolar, dizinleri destekler ve eşzamansız çalışır.
Veritabanı Açma
indexedDB.open(name, version) ile bir veritabanı açar veya oluşturursunuz. Bu işlem, olayları başarı ya da başarısızlık bildiren bir istek nesnesi döndürür.
const request = indexedDB.open('notes-db', 1);İstek Olayları
Açma isteği, işlediğiniz olayları tetikler:
onsuccess— veritabanı hazırdıronerror— açma başarısız olduonupgradeneeded— şemanın oluşturulması veya yükseltilmesi gerekir
request.onsuccess = (e) => {
const db = e.target.result;
console.log('database opened');
};
request.onerror = (e) => {
console.log('open failed:', e.target.error);
};onupgradeneeded
onupgradeneeded, veritabanı ilk kez oluşturulduğunda veya sürüm numarası arttığında çalışır. Şemayı değiştirebileceğiniz tek yer burasıdır (nesne depoları ve dizinleri oluşturma ya da silme).
request.onupgradeneeded = (e) => {
const db = e.target.result;
// create object stores here
};Nesne Depoları
Nesne deposu bir tablo gibidir: kayıtların bulunduğu bir kapsayıcıdır. onupgradeneeded içinde db.createObjectStore(name, options) ile bir tane oluşturun.
request.onupgradeneeded = (e) => {
const db = e.target.result;
db.createObjectStore('notes', { keyPath: 'id' });
};keyPath
keyPath, IndexedDB'ye her nesnenin hangi özelliğinin birincil anahtar olduğunu bildirir. Depolanan nesneler bu özelliğe sahip olmalı ve anahtarlar benzersiz olmalıdır.
db.createObjectStore('users', { keyPath: 'email' });
// Each stored user object must have a unique 'email'.Otomatik Artan Anahtarlar
Nesnelerinizin doğal bir anahtarı yoksa autoIncrement: true ile IndexedDB'nin bir anahtar oluşturmasını sağlayın. Her yeni kayıt bir sonraki tam sayıyı alır.
db.createObjectStore('logs', {
keyPath: 'id',
autoIncrement: true
});
// id is assigned automatically on add().Mevcut Depoları Denetleme
onupgradeneeded her sürüm artışında çalıştığından, yeniden çalıştırmalarda hataları önlemek için oluşturma işlemini db.objectStoreNames.contains ile koşula bağlayın.
request.onupgradeneeded = (e) => {
const db = e.target.result;
if (!db.objectStoreNames.contains('notes')) {
db.createObjectStore('notes', { keyPath: 'id' });
}
};db Başvurusunu Saklama
Daha sonraki işlemlerin kullanabilmesi için veritabanı nesnesini onsuccess içinden kaydedin. Tüm okuma ve yazma işlemleri bu db örneği üzerinden gerçekleştirilir.
let db;
request.onsuccess = (e) => {
db = e.target.result; // reuse for transactions
};Engellenen Açma İşlemlerini Ele Alma
Başka bir sekme eski bir sürümü açık tutuyorsa yükseltme işlemi blocked durumuna geçebilir. onblocked olayını dinleyin ve kullanıcıdan diğer sekmeleri kapatmasını isteyin.
request.onblocked = () => {
console.log('Close other tabs to upgrade the database.');
};Açma Akışı
IndexedDB'yi açma akışı şöyledir: bir ad ve sürümle open çağrısı yapın, şemanızı onupgradeneeded içinde oluşturun, ardından db'yi onsuccess içinde alın. Bundan sonra verileri okumak ve yazmak için işlemler çalıştırırsınız.
Hızlı Kontrol
Veritabanı açma konusundaki anlayışınızı sınayın.
Özet
Bir IndexedDB veritabanını açmayı öğrendiniz:
indexedDB.open(name, version)bir istek döndürür.- Nesne depolarını yalnızca
onupgradeneedediçinde oluşturun. keyPathbirincil anahtarı belirler;autoIncrementanahtarlar oluşturur.- Daha sonra kullanmak üzere
db'yionsuccessiçinden kaydedin. onerrorveonblockedolaylarını ele alın.
Sırada, işlemler ve CRUD işlemleri var.
Sıkça Sorulan Sorular
“Veritabanı Açma” dersi ücretsiz mi?
Evet — “Veritabanı Açma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.
“Veritabanı Açma” dersinde ne öğreneceğim?
Veritabanları ve nesne depoları oluşturun. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Veritabanı Açma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.