+
95
-

js如何操作浏览器中的indexdb?

js如何操作浏览器中的indexdb?

网友回复

+
15
-

IndexedDB 是一种将数据持久存储在用户浏览器中的方法。因为它允许您创建具有丰富查询能力的 Web 应用程序,而不管网络可用性如何,这些应用程序可以在线和离线工作。IndexedDB 对于存储大量数据的应用程序(例如,借阅图书馆中的 DVD 目录)和不需要持续 Internet 连接即可工作的应用程序(例如,邮件客户端、待办事项列表和记事本)。 IndexedDB 允许您存储和检索使用“键”索引的对象。您对数据库所做的所有更改都发生在事务中。像大多数 Web 存储解决方案一样,IndexedDB 遵循同源策略. 因此,虽然您可以访问域内存储的数据,但您无法跨不同域访问数据。 如果您有使用其他类型数据库的假设,则在使用 IndexedDB 时可能会被抛弃。因此,要记住 IndexedDB 的以下关键特征很重要: IndexedDB 数据库存储键值对。值可以是复杂的结构化对象,键可以是这些对象的属性。您可以创建使用对象的任何属性进行快速搜索以及排序枚举的索引。键可以是二进制对象。

IndexedDB 建立在事务数据库模型之上。你在 IndexedDB 中所做的一切总是发生在事务的上下文中. IndexedDB API 提供了许多表示索引、表、游标等的对象,但每个对象都与特定事务相关联。因此,您不能在事务之外执行命令或打开游标。事务具有明确定义的生命周期,因此在事务完成后尝试使用它会引发异常。此外,事务自动提交,不能手动提交。当您考虑如果用户同时在两个不同的选项卡中打开您的 Web 应用程序的两个实例时可能发生的情况时,此事务模型非常有用。如果没有事务操作,两个实例可能会干扰彼此的修改。如果您不熟悉数据库中的事务,请阅读维基百科关于交易的文章. 另请参阅定义部分下的交易。 IndexedDB API 主要是异步的。API 不会通过返回值为您提供数据;相反,您必须传递一个回调函数。您不会将值“存储”到数据库中,也不会通过同步方式从数据库中“检索”值。相反,您“请求”发生数据库操作。当操作完成时,您会收到 DOM 事件的通知,并且您收到的事件类型让您知道操作是成功还是失败。起初这听起来有点复杂,但里面有一些健全的措施。这与XMLHttpRequest 的工作方式没有什么不同。 IndexedDB 使用了很多请求。 请求是接收前面提到的成功或失败 DOM 事件的对象。他们有 onsuccess 和 onerror 属性,你可以打电话 addEventListener() 和 removeEventListener() 他们。他们也有 readyState, result和 errorCode 性质,告诉你的请求的状态。该 result 属性特别神奇,因为它可以是许多不同的东西,这取决于请求的生成方式(例如,一个 IDBCursor 实例,或者您刚刚插入到数据库中的值的键)。

IndexedDB 使用 DOM 事件在结果可用时通知您。 DOM 事件总是有一个 type 属性(在 IndexedDB 中,它最常设置为 "success" 或 "error")。DOM 事件还有一个 targ...

点击查看剩余70%

我知道答案,我要回答