IDBIndexSync - 提供对数据库中索引的同步访问

重要:IndexedDB API 的同步版本最初仅用于 Web Workers 一起使用,由于其需求存在问题,最终被从规范中删除。但是,如果 Web 开发人员有足够的需求,将来可能会重新引入它。

IDBIndexSyncIndexedDB API 的接口,提供对数据库中索引的同步访问。

属性

keyPath readonly DOMString

此索引的键路径。如果此属性为 null,则不会自动填充索引。

name readonly DOMString

该索引的名称。

storeName readonly DOMString

该索引的引用对象存储库

unique readonly boolean

如果为 true,则键在索引中只能有一个值;如果为 false,则键可以具有重复的值。

方法

add()

将给定值存储到此索引中,可以选择使用指定的键。如果使用给定键的记录已经存在,则会引发异常。

any add( 
  in any value,
  in optional any key
) raises (IDBDatabaseException);
参数

value

要存储到索引中的值。

key

用于标识记录的键名。

返回

any

存储记录的键。

异常

此方法可以使用以下代码引发 IDBDatabaseException

CONSTRAINT_ERR

如果此索引中存在与 key 参数相对应的键的记录,或者索引是自动填充的,或者在索引的引用对象存储中不存在与 value 参数相对应的键的记录。

get()

从该索引中检索与给定键对应的记录的值。

any get (
  in any key
) raises (IDBDatabaseException);
参数

key

标识要检索的记录的键。

返回

any

从索引中检索到的值。

异常

此方法可以使用以下代码引发 IDBDatabaseException

NOT_FOUND_ERR

如果给定键的索引中没有记录。

getObject()

从该索引的引用对象存储中检索并返回与给定键对应的值。

any getObject (
  in any key
) raises (IDBDatabaseException);
参数

key

标识要检索的记录的键。

返回

any

从引用的对象库中检索的值。

异常

此方法可以使用以下代码引发 IDBDatabaseException

NOT_FOUND_ERR

如果给定键的索引中没有记录。

openCursor()

在此索引的记录上创建一个游标。新游标的范围与指定的键范围匹配;如果未指定键范围或为 null,则该范围包括所有记录。

void openCursor (
  in optional IDBKeyRange range, 
  in optional unsigned short direction
) raises (IDBDatabaseException);
参数

range

用作游标范围的键范围。

direction

游标的方向。

返回

void

异常

此方法可以使用以下代码引发 IDBDatabaseException

NOT_FOUND_ERR

如果该索引中没有请求的键范围的记录。

openObjectCursor()

根据该索引的安排,在此索引的引用对象存储的记录上创建一个游标。新游标的范围与指定的键范围相匹配;如果未指定键范围或为 null,则该范围包括所有记录。

void openObjectCursor (
  in optional IDBKeyRange range, 
  in optional unsigned short direction
) raises (IDBDatabaseException);
参数

range

用作游标范围的键范围。

direction

游标的方向。

返回

void

异常

此方法可以使用以下代码引发 IDBDatabaseException

NOT_FOUND_ERR

如果该索引中没有请求的键范围的记录。

put()

将给定值存储在此索引中,并返回存储记录的键。如果使用给定键已存在记录,则该记录将被覆盖。

any put (
  in any value, 
  in optional any key) raises (IDBDatabaseException);
参数

value

要存储在记录中的值。

key

用于标识记录的键名。

返回

any

存储记录的键。

remove()

从该索引中删除与给定键对应的所有记录。

void remove (
  in any key
) raises (IDBDatabaseException);
参数

key

要删除的记录的键。

异常

此方法可以使用以下代码引发 DatabaseException

NOT_FOUND_ERR

如果记录中不存在具有给定键的记录。