IDBObjectStoreSync - 提供对数据库的对象库的同步访问
重要:IndexedDB API 的同步版本最初仅用于 Web Workers 一起使用,由于其需求存在问题,最终被从规范中删除。但是,如果 Web 开发人员有足够的需求,将来可能会重新引入它。
IDBObjectStoreSync
是 IndexedDB 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
如果 noOverwrite
为 true
,并且该索引中存在给定键的记录,或者该索引是自动填充的;或如果索引的引用对象存储中不存在具有给定键的记录。
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
如果连接数据库中不存在具有给定名称的索引。