官方的api文档地址:https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API
简介:
indexedDB是一种数据持久存储在用户浏览器中的方法。
可以创建出具有丰富查询功能的web应用程序,而无需在意网络是否可用,即在一定程度下实现联机和脱机运行。
IndexedDB数据库是HTML5新增,具有强大的数据存储与查询能力。
下面针对indexedDB进行一些大致介绍,其具体的细节和具体实现将在后面的文章中持续更新。
先抛出问题:
一、我们都知道每个事物出现都存在其道理和意义。那么是什么推动着indexedDB的出现呢?当我们思考这个问题时,就推动着我们去思考ndexedDB想要去解决一个什么样的问题?
二、由问题一,总结一下,有何优点?
针对上面两个问题我们在这篇教程中大致介绍indexedDB,从而确定你是否需要indexedDB去解决你的问题,是否需要继续学习下去。
一、indexedDB的出现
随着软硬件发展,数据的交换量越来越大,那么一味的从后台索取数据只会不断加大数据交互压力,导致通信卡顿,降低了数据展示效率和用户体验。此时就需要我们尽可能将数据从请求后台搬运到本地进行缓存,当再次访问相同的数据时已经存在本地的数据就可以直接拿过来用了,一来提高了数据加载效率,二来降低了数据传输压力。众所周知早期浏览器端存储数据的方式有cookie或者localStorage,但是cookie数据存储量实在太小了,仅有几KB,并且每次请求都会随同发送到服务器也浪费带宽。而LocalStorage存储量和cookie相比虽然有很大的增加,但最多也不过几十兆而已,不同浏览器有所不同。虽然后来出现了Web SQL数据库进行本地数据缓存,但是因为各种原因现在也遭到了废弃,所以一种本地缓存大数据的方法应需而生。
二、优势和特点
(1)存储数据量非常大,在理论上基本上不封顶。具体的上限按照磁盘进行计算,理论上是可以磁盘空间的50%
(2)是文档型数据库,与Mongodb等类似,与常见的关系型数据库不同,不支持SQL语句查询。
(3)支持且只支持transaction事务,对保证数据安全具有重要意义,与传统数据库中的事务目的一致。
(4)遵循同源策略,所以网页只能访问同域的IndexedDB数据库,而无法访问其他域上的数据。
(5)大多数情况下API采用异步操作,以防止数据操作量大时,阻塞其他操作的进行。(同步暂时大部分的浏览器暂不支持)
(6)不是以表的形式存储数据,而是通过对象仓库存储。(可以理解为一张表,但从存储结构上并不一样)
(7)数据库除了存储字符串外,还可以存储Date, Object, Arra, File, Blob, ImageData或二进制等数据类型。
(8)能够为数据建立索引,以此提高查询数据的各方面性能。(这个非常有用,是大数据快速查找的前提)
备注:
注意indexeddb已经内置到浏览器中,无需其他依赖包和三方库。在浏览的调试情况下,本地缓存的展示位置如下图。
网友评论