IDBFactory.open - Web API 接口参考 编辑
IDBFactory.open
方法用于打开一个数据库连接。本方法立即返回一个 IDBOpenDBRequest
对象,但打开数据库的操作是异步执行的。
连接数据库在一个单独的线程中进行,包括以下几个步骤:
- 指定数据库已经存在时:
- 等待
versionchange
操作完成。 - 如果数据库已计划删除,那等着删除完成。
- 等待
- 如果已有数据库版本高于给定的
version,中止操作并返回
类型为VersionError 的
DOMError
。 - 如果已有数据库版本低于给定的
version,触发一个
versionchange
操作。 - 如果数据库不存在,创建指定名称的数据库,将版本号设置为给定版本,如果给定版本号,则设置为1,and no object stores.
- 创建数据库连接。
如果操作成功执行,将触发 success
事件 on the request object that is returned from this method, with its result
attribute set to the new IDBDatabase
object for the connection.
If an error occurs while the database connection is being opened, then an error event is fired on the request object returned from this method.
Syntax
For the current standard:
IDBOpenDBRequest
open (DOMString name, [EnforceRange] optional unsigned long long version);
For the experimental version with options
(see below):
IDBOpenDBRequest open (DOMString name, optional IDBOpenDBOptions options);
示例
For the current standard:
var request = window.indexedDB.open("toDoList", 4);
For the experimental version with options
(see below):
var request = window.indexedDB.open("toDoList", {version: 4, storage: "temporary"});
参数
- name
- 数据库名称
- version
- 指定数据库版本,当你想要更改数据库格式(比如增加对象存储,非增加记录),必须指定更高版本,通过 versionchange 来更改
- options (version and storage) 非标准
- In Gecko, since version 26, you can include an
options
object as a parameter ofIDBFactory.open
that contains theversion
number of the database, plus a storage value that specifies whether you want to usepermanent
(the default value) storage for the IndexedDB, ortemporary
storage (aka shared pool.) See bug 785884 for more details. This is a non-standard feature that we are looking to standardise sometime in the future.
Note: Data in temporary storage persists until the global limit for the pool is reached. The global limit calculation is relatively complex, but we are considering changing it (see bug 968272). When the global limit is reached, then data for the least recently used origin is deleted. There's also a group limit (eTLD+1 group/domain) which is currently 20% of the global limit. All requets that would exceed the group limit are just rejected.
返回
IDBOpenDBRequest
- The request object on which subsequent events related to this request are fired.
Exceptions
This method may raise a DOMException
with a DOMError of the following types:
Exception | 描述 |
---|---|
TypeError | The value of version is zero or a negative number or not a number. |
Specifications
Specification | Status | Comment |
---|---|---|
Indexed Database API The definition of 'IDBFactory' in that specification. | Recommendation | |
Indexed Database API 2.0 The definition of 'IDBFactory' in that specification. | Recommendation |
浏览器兼容性
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. Update compatibility data on GitHubDesktop | Mobile | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | |
Basic support | Chrome Full support 24
| Edge Full support Yes | Firefox Full support 16
| IE Full support 10Notes
| Opera Full support 15 | Safari Full support 7 | WebView Android Full support Yes
| Chrome Android Full support 25
| Edge Mobile ? | Firefox Android Full support 22 | Opera Android Full support 22 | Safari iOS Full support 8 | Samsung Internet Android Full support Yes
|
Available in workers | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 37 | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 37 | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support Yes |
cmp | Chrome Full support 24
| Edge Full support 12 | Firefox Full support 16
| IE Full support 10Notes
| Opera Full support 15 | Safari Full support 7 | WebView Android Full support Yes
| Chrome Android Full support 25 | Edge Mobile Full support Yes | Firefox Android Full support 22 | Opera Android Full support 22 | Safari iOS Full support 8 | Samsung Internet Android Full support Yes |
deleteDatabase | Chrome Full support 24
| Edge Full support 12 | Firefox Full support 16
| IE Full support 10Notes
| Opera Full support 15 | Safari Full support 7 | WebView Android Full support Yes
| Chrome Android Full support 25 | Edge Mobile Full support Yes | Firefox Android Full support 22 | Opera Android Full support 22 | Safari iOS Full support 8 | Samsung Internet Android Full support Yes |
open | Chrome Full support 24
| Edge Full support 12 | Firefox Full support 16
| IE Full support 10Notes
| Opera Full support 15 | Safari Full support 7 | WebView Android Full support Yes
| Chrome Android Full support 25 | Edge Mobile Full support Yes | Firefox Android Full support 22 | Opera Android Full support 22 | Safari iOS Full support 8 | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
- See implementation notes.
- See implementation notes.
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论