IDBRequest

The IDBRequest interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes. Each reading and writing operation on a database is done using a request.

The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance.

All asynchronous operations immediately return an IDBRequest instance. Each request has a readyState that is set to the 'pending' state; this changes to 'done' when the request is completed or fails. When the state is set to done, every request returns a result and an error, and an event is fired on the request. When the state is still pending, any attempt to access the result or error raises an InvalidStateError exception.

In plain words, all asynchronous methods return a request object. If the request has been completed successfully, the result is made available through the result property and an event indicating success is fired at the request (IDBRequest.onsuccess). If an error occurs while performing the operation, the exception is made available through the result property and an error event is fired (IDBRequest.onerror).

The interface IDBOpenDBRequest is derived from IDBRequest.

註: この機能は Web Workers 内で利用可能です。

Properties

Also inherits properties from EventTarget.

IDBRequest.error 読取専用
Returns a DOMException in the event of an unsuccessful request, indicating what went wrong.
IDBRequest.result 読取専用

Returns the result of the request. If the the request failed and the result is not available, an InvalidStateError exception is thrown.

IDBRequest.source 読取専用
The source of the request, such as an IDBIndex or an IDBObjectStore. If no source exists (such as when calling IDBFactory.open), it returns null.
IDBRequest.readyState 読取専用
The state of the request. Every request starts in the pending state. The state changes to done when the request completes successfully or when an error occurs.
IDBRequest.transaction 読取専用
The transaction for the request. This property can be null for certain requests, for example those returned from IDBFactory.open unless an upgrade is needed. (You're just connecting to a database, so there is no transaction to return).

Methods

No methods, but inherits methods from EventTarget.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

error
Fired when an error caused a request to fail.
Also available via the onerror property.
success
Fired when an IDBRequest succeeds.
Also available via the onsuccess property.

Example

In the following code snippet, we open a database asynchronously and make a request; onerror and onsuccess functions are included to handle the success and error cases. For a full working example, see our To-do Notifications app (view example live.)

var db;

// Let us open 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.
  db = DBOpenRequest.result;
};

Specifications

Specification Status Comment
Indexed Database API 2.0
IDBRequest の定義
勧告 Initial definition.
Indexed Database API Draft
IDBRequest の定義
勧告  

Browser compatibility

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
IDBRequestChrome 完全対応 24
完全対応 24
未対応 2 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 ありFirefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25
完全対応 25
未対応 25 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
完全対応 あり
未対応 ? — 7.0
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
errorChrome 完全対応 24
完全対応 24
未対応 23 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25
完全対応 25
未対応 25 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
完全対応 あり
未対応 ? — 7.0
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
error eventChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
onerrorChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
onsuccessChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
readyStateChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
resultChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
sourceChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
success eventChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
transactionChrome 完全対応 24
完全対応 24
完全対応 23
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 14Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
Available in workersChrome 完全対応 ありEdge ? Firefox 完全対応 37IE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 37Opera Android 完全対応 ありSafari iOS ? Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

See also