文章目录
- 索引的创建
-
- createIndex的用法
-
- 参数说明
- IDBIndex
-
- 常用方法
-
- `IDBIndex.get()`
-
- 用法
- 参数
- `IDBIndex.getAll()`
-
- 用法
- 参数
根据MDN文档的描述,索引是一种为了在其他
objectStore
中查找数据的
objectStore
。用户可以使用这个接口来获取数据。
用户可以通过主键或者是索引来获取数据。索引可以让你使用记录中的值而不是主键来查找数据。
数组是一个长期有效的键-值存储,它的值就是被参照的
objectStore
的键。无论什么时候数据在被参照
objectStoe
中被插入、更新或删除,索引中的数据是自动产生的。索引中的每一条数据
都只能指向被参照
objectStore
中的一条数据,但是几条数据可以同时指向被参照
objectStore
中的同一条数据。
索引的创建
创建索引需要用到
IDBObjectStore
对象的
createIndex
方法,需要注意这个方法只能在
VersionChange
事件回调中调用。
createIndex的用法
用法如下:
参数说明
-
:将要创建的索引的名字。可以为空。indexName
-
:索引的值。可以为空,也可以传一个数组。keyPath
-
:一个objectParameters
对象。可以包含如下值:IDBIndexParameters
-
:如果为真,索引将不会允许一个键对应多个值的情况unique
-
:如果为真且multiEntry
指向的字段是数组,那么会为数组中每个元素建立索引keyPath
-
IDBIndex
常用方法
IDBIndex.get()
IDBIndex.get()
IDBIndex
的
get
方法会返回一个
IDBRequest
对象,同时在另一个线程中会寻找被参照的
objectStore
内与给出的键相关的值,或者是如果这个键在
IDBKeyRange
所给定的范围内的话,那么给出第一个相关值。
用法
参数
- key:可选参数。一个键,或者是一个想要查询的数据的范围。如果这个值为空或,那么浏览器会选择
的范围。unbound
IDBIndex.getAll()
IDBIndex.getAll()
通过游标(cursor)来查看数据的值存在性能损失,因为对象是懒创建的。而如果使用像
getAll
这样的方法,浏览器不得不同时创建所有的对象。如果只是想用游标来看数据的键,那么使用游标是更有效的选择。
用法
参数
- query:与
的IDBIndex
方法类似含义。get
- count:希望所返回的数据数。