IndexedDB est une API de bas niveau permettant de stocker de grandes quantités de données structurées et elle est couramment utilisée dans les applications Web pour le stockage côté client. Voici les étapes de base pour utiliser IndexedDB en HTML5 :
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);
};
Ces exemples couvrent les opérations CRUD de base dans IndexedDB. En fonction de votre application, vous devrez peut-être gérer des transactions, créer plusieurs magasins d'objets et utiliser des fonctionnalités plus avancées proposées par IndexedDB.