IDBObjectStoreSync - 提供对数据库的对象库的同步访问

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

IDBObjectStoreSyncIndexedDB API 的接口,提供对数据库的对象库的同步访问。

属性

indexNames readonly DOMStringList

此对象存储上的索引名称的列表。

keyPath readonly DOMString

此对象库的键名路径。如果将此属性设置为 null,则应用程序必须为每个修改操作提供一个键。

mode readonly unsigned short

用于隔离对此对象存储中数据的访问的模式。有关可能的值,请参见常量

name readonly DOMString

该对象库的名称。

常量

Mode constants

常量 描述
1 不允许在此对象存储上进行修改操作。
0 允许对此对象存储库进行修改操作。
2 任何读取操作都必须访问数据的快照视图,该快照视图一旦创建便无法更改。

方法

add()

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

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

value

要存储到索引中的值。

key

用于标识记录的键名。

返回

any

存储记录的键名。

异常

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

CONSTRAINT_ERR

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

DATA_ERR

如果此对象存储库使用离线键,并且未传递 key 参数。

SERIAL_ERR

如果存储的数据无法通过内部结构化克隆算法进行序列化。

createIndex()

在连接的数据库中创建并返回具有给定名称的新索引。

 IDBIndexSync createIndex (
    in DOMString name, 
    in DOMString keypath, 
    in optional boolean unique
 );
参数

name

新索引的名称。

keyPath

新索引使用的键名路径。

unique

如果为 true,则索引中的键必须唯一;如果为 false,则允许重复的密钥。

返回

IDBIndexSync

用于访问新创建的索引的对象。

get()

从此对象存储中检索并返回与给定键对应的记录的值。

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

key

标识要检索的记录的键。

返回

any

从对象存储中检索到的值。

异常

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

SERIAL_ERR

如果存储的数据无法通过内部结构化克隆算法反序列化。

NOT_FOUND_ERR

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

openCursor()

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

CursorSync openCursor (
  in optional KeyRange range, 
  in optional unsigned short direction
) raises (DatabaseException);
参数

range

用作游标范围的键范围。

direction

游标的必需方向。

返回

IDBIndexSync

用于访问索引的对象。

异常

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

NOT_FOUND_ERR

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

openIndex()

使用当前事务的模式打开具有给定名称的索引。

 IDBIndexSync openIndex (
   in DOMString name
 ) raises  (IDBDatabaseException);
参数

name

要打开的索引的名称。

返回

IDBIndexSync

访问索引的对象。

异常

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

NOT_FOUND_ERR

如果给定名称的索引在连接的数据库中不存在。

put()

将给定值存储在此对象存储中,并返回存储记录的键。如果使用给定键的记录已经存在,则将其覆盖。

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

value

要存储在记录中的值。

key

用于标识记录键名。

返回

any

存储记录的键名。

异常

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

CONSTRAINT_ERR

如果 noOverwritetrue,并且该索引中存在给定键的记录,或者该索引是自动填充的;或如果索引的引用对象存储中不存在具有给定键的记录。

DATA_ERR

如果此对象存储使用离线键,并且没有键名生成器,但未提供任何键。

SERIAL_ERR

如果存储的数据无法通过内部结构化克隆算法进行序列化。

remove()

从此对象存储中删除与给定键对应的所有记录。

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

key

要删除的记录的键。

返回

void

异常

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

NOT_FOUND_ERR

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

removeIndex()

销毁具有给定名称的索引。

  void removeIndex (
    in DOMString indexName
  ) raises (IDBDatabaseException);
参数

indexName

要删除的现有索引的名称。

Exceptions

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

NOT_FOUND_ERR

如果连接数据库中不存在具有给定名称的索引。