open()
方法在
IDBFactory
interface requests opening a
连接到数据库
.
The method returns an
IDBOpenDBRequest
object immediately, and performs the open operation asynchronously. If the operation is successful, a
success
event is fired 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.
May trigger
upgradeneeded
,
blocked
or
versionchange
事件。
For the current standard:
var IDBOpenDBRequest = indexedDB.open(name); var IDBOpenDBRequest = indexedDB.open(name, version);
The name of the database.
1
.
选项
object as a parameter of
IDBFactory.open
包含
version
number of the database, plus a storage value that specifies whether you want to use
persistent
or
temporary
storage.
警告:
storage
attribute is deprecated and will soon be removed from Gecko. You should use
StorageManager.persist()
to get persistent storage instead.
注意 : You can find out more information on the different available storage types, and how Firefox handles client-side data storage, at 浏览器存储限制和驱逐准则 .
A
IDBOpenDBRequest
object on which subsequent events related to this request are fired.
此方法可能引发
DOMException
of the following types:
| 异常 | 描述 |
|---|---|
TypeError
|
The value of version is zero or a negative number or not a number. |
Example of calling
open
with the current specification's
version
parameter:
var request = window.indexedDB.open("toDoList", 4);
In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our 待办通知 app ( 实时查看范例 )。
var note = document.querySelector("ul");
// In the following line, you should include the prefixes
// of implementations you want to test.
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
// DON'T use "var indexedDB = ..." if you're not in a function.
// Moreover, you may need references to some window.IDB* objects:
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
// (Mozilla has never prefixed these objects, so we don't
// need window.mozIDB*)
// Let us open version 4 of our database
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// these two event handlers act on the database being opened
// successfully, or not
DBOpenRequest.onerror = function(event) {
note.innerHTML += '<li>Error loading database.</li>';
};
DBOpenRequest.onsuccess = function(event) {
note.innerHTML += '<li>Database initialised.</li>';
// store the result of opening the database in the db
// variable. This is used a lot later on, for opening
// transactions and suchlike.
db = DBOpenRequest.result;
};
| 规范 | 状态 | 注释 |
|---|---|---|
|
索引数据库 API 2.0
在该规范中的 open() 定义。 |
推荐 | |
|
索引数据库 API 草案
在该规范中的 open() 定义。 |
推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
open
|
Chrome
24
|
Edge 12 |
Firefox
16
|
IE 部分支持 10 | Opera 15 | Safari 7 |
WebView Android
Yes
|
Chrome Android 25 | Firefox Android 22 | Opera Android 14 | Safari iOS 8 | Samsung Internet Android 1.5 |
完整支持
部分支持
要求使用供应商前缀或不同名称。
IDBDatabase
IDBTransaction
IDBKeyRange
IDBObjectStore
IDBCursor
IDBFactory
cmp()
databases
deleteDatabase()
open()
IDBCursor
IDBCursorSync
IDBCursorWithValue
IDBDatabase
IDBDatabaseException
IDBDatabaseSync
IDBEnvironment
IDBEnvironmentSync
IDBFactorySync
IDBIndex
IDBIndexSync
IDBKeyRange
IDBObjectStore
IDBObjectStoreSync
IDBOpenDBRequest
IDBRequest
IDBTransaction
IDBTransactionSync
IDBVersionChangeEvent
IDBVersionChangeRequest