IndexedDB 是一個用於儲存大量結構化資料的低階 API,通常在 Web 應用程式中用於客戶端儲存。以下是在 HTML5 中使用 IndexedDB 的基本步驟:
javascript let db;
const request = window.indexedDB.open('YourDatabaseName', 1);
request.onerror = function (event) {
console.log('Database error: ' + event.target.errorCode);
};
request.onsuccess = function (event) {
db = event.target.result;
console.log('Database opened successfully');
};
request.onupgradeneeded = function (event) {
// This is called only if the database version is increased
const db = event.target.result;
const objectStore = db.createObjectStore('YourObjectName', { keyPath: 'id', autoIncrement: true });
// You can define indexes here if needed
objectStore.createIndex('indexName', 'propertyName', { unique: false });
};
javascript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const data = { id: 1, name: 'John Doe', age: 25 };
const request = objectStore.add(data);
request.onsuccess = function (event) {
console.log('Data added successfully');
};
request.onerror = function (event) {
console.log('Error adding data: ', event.target.error);
};
javascript const transaction = db.transaction(['YourObjectName'], 'readonly');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.get(1); // Get data with ID 1
request.onsuccess = function (event) {
const data = event.target.result;
if (data) {
console.log('Retrieved data:', data);
} else {
console.log('No data found with the specified ID');
}
};
request.onerror = function (event) {
console.log('Error retrieving data: ', event.target.error);
};
javascript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.put({ id: 1, name: 'Updated Name', age: 30 });
request.onsuccess = function (event) {
console.log('Data updated successfully');
};
request.onerror = function (event) {
console.log('Error updating data: ', event.target.error);
};
javascript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.delete(1); // Delete data with ID 1
request.onsuccess = function (event) {
console.log('Data deleted successfully');
};
request.onerror = function (event) {
console.log('Error deleting data: ', event.target.error);
};
這些範例涵蓋了 IndexedDB 中的基本 CRUD 操作。根據您的應用程序,您可能需要處理事務、建立多個物件儲存以及使用 IndexedDB 提供的更高級功能。