IndexedDB 是一個用於儲存大量結構化資料的低階 API,通常在 Web 應用程式中用於客戶端儲存。以下是在 HTML5 中使用 IndexedDB 的基本步驟:

1. 開啟資料庫:

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 }); };

2. 新增數據:

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); };

3. 檢索資料:

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); };

4.更新數據:

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); };

5. 刪除資料:

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 提供的更高級功能。