
Mastering data storage and local databases in JavaScript requires specific code examples
In recent years, with the rapid development of the Internet and the popularity of smart devices, data storage and Management has become one of the important technical requirements. In JavaScript, data storage methods are very diverse, including common Cookies, Web Storage, IndexedDB, etc. Understanding and mastering these data storage methods can help us develop and manage applications more efficiently.
In previous articles, we have introduced Cookies and Web Storage in JavaScript in detail. This article will focus on the more powerful and complex local database-IndexedDB.
IndexedDB is an API for creating and managing databases in the browser, providing a very powerful and flexible way to store and retrieve data. IndexedDB uses the data structure of a non-relational database, in which data is stored in the form of key-value pairs and supports index creation and query.
Below we will use a specific code example to demonstrate how to use IndexedDB to create a database in the browser and perform data addition, deletion, modification and query operations.
First, we need to create an HTML page and add a button for operating IndexedDB and a container to display data:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>IndexedDB Demo</title>
</head>
<body>
<button id="addButton">增加數(shù)據(jù)</button>
<button id="deleteButton">刪除數(shù)據(jù)</button>
<button id="updateButton">更新數(shù)據(jù)</button>
<button id="queryButton">查詢數(shù)據(jù)</button>
<div id="resultContainer"></div>
<script src="main.js"></script>
</body>
</html>
Then, in the JavaScript file main.js
, we can write a piece of code to create an IndexedDB database, and perform operations of adding, deleting, updating and querying data:
// 打開或創(chuàng)建一個名為MyDatabase的IndexedDB數(shù)據(jù)庫
var request = indexedDB.open("MyDatabase", 1);
// 如果數(shù)據(jù)庫不存在,則創(chuàng)建
request.onupgradeneeded = function(event) {
var db = event.target.result;
var objectStore = db.createObjectStore("users", { keyPath: "id" });
objectStore.createIndex("name", "name", { unique: false });
};
// 數(shù)據(jù)庫創(chuàng)建成功后的回調(diào)函數(shù)
request.onsuccess = function(event) {
var db = event.target.result;
// 增加數(shù)據(jù)
document.getElementById("addButton").onclick = function() {
var transaction = db.transaction(["users"], "readwrite");
var objectStore = transaction.objectStore("users");
var user = { id: 1, name: "John Doe", age: 25 };
var request = objectStore.add(user);
request.onsuccess = function(event) {
console.log("Data added successfully");
};
request.onerror = function(event) {
console.log("Error adding data");
};
};
// 刪除數(shù)據(jù)
document.getElementById("deleteButton").onclick = function() {
var transaction = db.transaction(["users"], "readwrite");
var objectStore = transaction.objectStore("users");
var request = objectStore.delete(1);
request.onsuccess = function(event) {
console.log("Data deleted successfully");
};
request.onerror = function(event) {
console.log("Error deleting data");
};
};
// 更新數(shù)據(jù)
document.getElementById("updateButton").onclick = function() {
var transaction = db.transaction(["users"], "readwrite");
var objectStore = transaction.objectStore("users");
var request = objectStore.put({ id: 1, name: "Jane Doe", age: 30 });
request.onsuccess = function(event) {
console.log("Data updated successfully");
};
request.onerror = function(event) {
console.log("Error updating data");
};
};
// 查詢數(shù)據(jù)
document.getElementById("queryButton").onclick = function() {
var transaction = db.transaction(["users"], "readonly");
var objectStore = transaction.objectStore("users");
var request = objectStore.get(1);
request.onsuccess = function(event) {
var user = event.target.result;
var resultContainer = document.getElementById("resultContainer");
resultContainer.innerHTML = "Name: " + user.name + ", Age: " + user.age;
};
request.onerror = function(event) {
console.log("Error querying data");
};
};
};
// 數(shù)據(jù)庫創(chuàng)建失敗后的回調(diào)函數(shù)
request.onerror = function(event) {
console.log("Error creating database");
};
Through the above code, we implement adding, deleting, updating and querying data respectively. Query data operations. When the user clicks the button, the corresponding action will be triggered and executed.
Through this simple example, we can see that IndexedDB, as a local database, provides a wide range of functions and flexible operations in JavaScript. Proficient in IndexedDB can not only optimize the storage and query process of large amounts of data, but also improve the response speed and user experience of the application.
In summary, through specific code examples, we learned how to use IndexedDB for data storage and management in JavaScript. However, using IndexedDB requires deeper understanding and practice, as well as browser compatibility considerations. In actual development, we need to choose the appropriate data storage method according to specific needs to achieve the best performance and user experience.
The above is the detailed content of Master data storage and local databases in JavaScript. For more information, please follow other related articles on the PHP Chinese website!