Apa itu IndexedDB?
IndexedDB adalah standar web yang terus berkembang untuk menyimpan data terstruktur dalam jumlah besar di browser dan untuk penelusuran berperforma tinggi pada data ini menggunakan indeks. Dengan kata lain, IndexedDB adalah penyimpanan objek. Database ini tidak sama dengan database relasional, yang memiliki tabel dengan baris dan kolom koleksi. Perbedaan ini penting dan mendasar yang memengaruhi cara Anda mendesain dan mem-build aplikasi (selengkapnya di - konsep dasar.
Jadi, apa yang baru?
Perubahan teman-teman... kita memiliki beberapa perubahan yang akan menampilkan beberapa error jika kita tidak menanganinya dengan perubahan sintaksis sederhana.
Mulai versi 17 dan seterusnya, Chrome kini akan menampilkan error jika transaksi IndexedDB tidak dicakup ke object store. Karena semua operasi baca dan tulis data dilakukan dalam transaksi, kita perlu membuat transaksi di database, menentukan cakupan (seperti penyimpanan objek yang ingin Anda akses), dan menentukan jenis akses (hanya baca atau tulis).
Apa artinya dalam kode? Nah, daripada meneruskan array kosong ke database.transaction:
var transaction = db.transaction([], IDBTransaction.READ_ONLY);
Anda harus menentukan cakupan ke object store tertentu, atau daftar object store:
// all stores (equivalent to what use to be marked as empty array. )
var transaction = db.transaction(db.objectStoreNames, IDBTransaction.READ_ONLY);
// multiple stores:
var transaction = db.transaction(['ObjectStoreName1', 'ObjectStoreName2'],
IDBTransaction.READ_ONLY);
// single store - these are equivalent
var transaction = db.transaction(['ObjectStoreName'], IDBTransaction.READ_ONLY);
var transaction = db.transaction('ObjectStoreName', IDBTransaction.READ_ONLY);
Anda dapat mempercepat akses data dengan menggunakan cakupan dan mode yang tepat dalam transaksi. Berikut beberapa tips:
Saat menentukan cakupan, tentukan hanya penyimpanan objek yang Anda perlukan. Dengan cara ini, Anda dapat menjalankan beberapa transaksi dengan cakupan yang tidak tumpang-tindih secara serentak.
Hanya tentukan mode transaksi READ_WRITE
jika diperlukan. Anda dapat menjalankan beberapa transaksi READ_ONLY
secara serentak dengan cakupan yang tumpang-tindih, tetapi Anda hanya dapat memiliki satu transaksi READ_WRITE
untuk penyimpanan objek.
Sumber lainnya:
- Update di chromium.org
- Detail selengkapnya tentang IndexedDB di MDN
- Contoh lengkap tentang cara menggunakan indexedDB di aplikasi web daftar tugas sederhana
Jadi, sampai jumpa lagi... terus dorong web ke wilayah terdekat.