Membuka Pangkalan Data
Cipta pangkalan data dan stor objek.
Membuka Pangkalan Data ialah pelajaran Akademi JavaScript percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi JavaScript, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi JavaScript merangkumi sejumlah 4 pelajaran.
Apakah IndexedDB
IndexedDB ialah pangkalan data berkapasiti besar yang menyokong transaction dan terbina dalam pelayar. Tidak seperti localStorage (kecil, hanya rentetan, segerak), ia menyimpan objek berstruktur, menyokong indeks dan berfungsi secara tak segerak.
Membuka Pangkalan Data
Anda membuka (atau mencipta) pangkalan data dengan indexedDB.open(name, version). Ia mengembalikan objek permintaan yang acaranya melaporkan kejayaan atau kegagalan.
const request = indexedDB.open('notes-db', 1);Acara Permintaan
Permintaan pembukaan mencetuskan acara yang perlu Anda kendalikan:
onsuccess— pangkalan data sedia digunakanonerror— pembukaan gagalonupgradeneeded— skema perlu dicipta atau dinaik taraf
request.onsuccess = (e) => {
const db = e.target.result;
console.log('database opened');
};
request.onerror = (e) => {
console.log('open failed:', e.target.error);
};onupgradeneeded
onupgradeneeded berjalan apabila pangkalan data mula-mula dicipta atau nombor versinya meningkat. Inilah satu-satunya tempat Anda boleh mengubah skema (mencipta atau memadam object store dan indeks).
request.onupgradeneeded = (e) => {
const db = e.target.result;
// create object stores here
};Objek store
Objek store adalah seperti jadual: bekas rekod. Ciptanya dengan db.createObjectStore(name, options) dalam onupgradeneeded.
request.onupgradeneeded = (e) => {
const db = e.target.result;
db.createObjectStore('notes', { keyPath: 'id' });
};keyPath
keyPath memberitahu IndexedDB sifat bagi setiap objek yang menjadi kunci utamanya. Objek yang disimpan mesti mempunyai sifat itu, dan kunci mestilah unik.
db.createObjectStore('users', { keyPath: 'email' });
// Each stored user object must have a unique 'email'.Kunci yang Meningkat Secara Automatik
Jika objek Anda tidak mempunyai kunci semula jadi, benarkan IndexedDB menjana kunci dengan autoIncrement: true. Setiap rekod baharu mendapat nombor bulat seterusnya.
db.createObjectStore('logs', {
keyPath: 'id',
autoIncrement: true
});
// id is assigned automatically on add().Memeriksa object store Sedia Ada
Memandangkan onupgradeneeded berjalan pada setiap peningkatan versi, lindungi penciptaan dengan db.objectStoreNames.contains untuk mengelakkan ralat apabila dijalankan semula.
request.onupgradeneeded = (e) => {
const db = e.target.result;
if (!db.objectStoreNames.contains('notes')) {
db.createObjectStore('notes', { keyPath: 'id' });
}
};Menyimpan Rujukan db
Simpan objek pangkalan data daripada onsuccess supaya operasi seterusnya boleh menggunakannya. Semua bacaan dan penulisan melalui tika db ini.
let db;
request.onsuccess = (e) => {
db = e.target.result; // reuse for transactions
};Mengendalikan Pembukaan yang Disekat
Jika tab lain membuka versi lama, peningkatan mungkin menjadi blocked. Dengarkan onblocked dan minta pengguna menutup tab lain.
request.onblocked = () => {
console.log('Close other tabs to upgrade the database.');
};Aliran Pembukaan
Untuk membuka IndexedDB: panggil open dengan nama dan versi, cipta skema dalam onupgradeneeded, kemudian dapatkan db dalam onsuccess. Selepas itu, Anda menjalankan transaction untuk membaca dan menulis data.
Semakan Pantas
Uji pemahaman Anda tentang pembukaan pangkalan data.
Ringkasan
Anda telah mempelajari cara membuka pangkalan data IndexedDB:
indexedDB.open(name, version)mengembalikan permintaan.- Cipta object store hanya dalam
onupgradeneeded. keyPathmenetapkan kunci utama;autoIncrementmenjana kunci.- Simpan
dbdaripadaonsuccessuntuk digunakan kemudian. - Kendalikan
onerrordanonblocked.
Seterusnya, transaction dan operasi CRUD.
Pelajari JavaScript dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 59
- Pelajaran
- 200
Soalan Lazim
Adakah pelajaran “Membuka Pangkalan Data” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Akademi JavaScript, termasuk “Membuka Pangkalan Data”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Akademi JavaScript merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Membuka Pangkalan Data”?
Cipta pangkalan data dan stor objek. Anda berlatih Akademi JavaScript menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Akademi JavaScript?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi JavaScript di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Membuka Pangkalan Data” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi JavaScript ini?
Ya. Setiap pelajaran Akademi JavaScript menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membuka Pangkalan Data
- Transaksi dan CRUD
- Indeks dan Pertanyaan
- Pemberian Versi dan Naik Taraf