返回

编程基础:IndexedDB 如何将数据轻松保存到您的浏览器

前端

如今,Web 开发人员需要创建具有离线访问数据的动态应用程序。IndexedDB 是一种强大的 JavaScript API,可让您在浏览器中存储和检索数据,即使在用户离线时也是如此。让我们快速了解 IndexedDB 如何轻松将数据保存到您的浏览器。

IndexedDB 是什么?

IndexedDB 是一个用于在浏览器中存储数据的 API。它使用索引来组织数据,以便您可以快速查找和检索它。IndexedDB 比 localStorage 更强大,因为它可以存储更多数据,并允许您创建索引来提高检索数据的速度。

如何使用 IndexedDB?

要使用 IndexedDB,您需要先创建一个数据库。您可以使用以下代码创建一个数据库:

var db = indexedDB.open('my_database', 1);

这将创建一个名为 "my_database" 的数据库,版本号为 1。如果数据库不存在,它将被创建。如果数据库已经存在,则将打开它。

如何在 IndexedDB 中存储数据?

要将数据存储在 IndexedDB 中,您需要先创建一个对象存储。对象存储是一个可以存储相关数据的容器。您可以使用以下代码创建一个对象存储:

var objectStore = db.createObjectStore('my_object_store', { keyPath: 'id' });

这将创建一个名为 "my_object_store" 的对象存储,其中 "id" 字段将用作键路径。键路径是用于标识对象存储中每个对象的唯一值。

现在,您可以使用以下代码将数据存储在对象存储中:

var transaction = db.transaction(['my_object_store'], 'readwrite');
var objectStore = transaction.objectStore('my_object_store');
objectStore.add({ id: 1, name: 'John Doe' });

这将在 "my_object_store" 对象存储中创建一个新对象,其中 "id" 字段的值为 1,"name" 字段的值为 "John Doe"。

如何从 IndexedDB 中检索数据?

要从 IndexedDB 中检索数据,您需要使用以下代码获取对象存储:

var transaction = db.transaction(['my_object_store'], 'readonly');
var objectStore = transaction.objectStore('my_object_store');

然后,您可以使用以下代码检索对象存储中的数据:

objectStore.get(1).onsuccess = function(e) {
  console.log(e.target.result);
};

这将在控制台中打印 "John Doe",因为我们将 "id" 字段的值为 1 的对象存储在 "my_object_store" 对象存储中。

结论

IndexedDB 是一种用于在浏览器中存储数据的强大 API。它易于使用,可以帮助您创建具有离线访问数据的动态应用程序。在本文中,我们介绍了如何使用 IndexedDB 创建数据库、创建对象存储、存储数据和检索数据。