The advance()
method of the IDBCursor
interface sets the number of times a cursor should move its position forward.
Note: This feature is available in Web Workers.
Syntax
cursor.advance(count);
Parameters
count
- The number of times to move the cursor forward.
Exceptions
This method may raise a DOMException
of one of the following types:
Exception | Description |
---|---|
TransactionInactiveError
|
This IDBCursor's transaction is inactive. |
TypeError
|
The value passed into the count parameter was zero or a negative number.
|
InvalidStateError
|
The cursor is currently being iterated or has iterated past its end.
|
Example
In this simple fragment we create a transaction, retrieve an object store, then use a cursor to iterate through the records in the object store. Here we use cursor.advance(2)
to jump 2 places forward each time, meaning that only every other result will be displayed. advance()
works in a similar way to IDBCursor.continue
, except that it allows you to jump multiple records at a time, not just always go onto the next record.
Note that in each iteration of the loop, you can grab data from the current record under the cursor object using cursor.value.foo
. For a complete working example, see our IDBCursor example ([[../../../../../../../mdn.github.io/indexeddb-examples/idbcursor/index|view example live]].)
function advanceResult() {
list.innerHTML = '';
var transaction = db.transaction(['rushAlbumList'], "readonly");
var objectStore = transaction.objectStore('rushAlbumList');
objectStore.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
var listItem = document.createElement('li');
listItem.innerHTML = '<strong>' + cursor.value.albumTitle + '</strong>, ' + cursor.value.year;
list.appendChild(listItem);
cursor.advance(2);
} else {
console.log('Every other entry displayed.');
}
};
};
Specifications
Specification | Status | Comment |
Indexed Database API 2.0The definition of 'advance()' in that specification. | Recommendation | |
Indexed Database API DraftThe definition of 'advance()' in that specification. | Recommendation |
Browser compatibility
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 GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
advance
|
Chrome Full support 24 Full support 24 No support 23 — 24 Prefixed' Implemented with the vendor prefix: webkit |
Edge
Full support 12 |
Firefox Full support 16 Full support 16 No support 10 — 16 Prefixed' Implemented with the vendor prefix: moz |
IE
Partial support 10 |
Opera
Full support 15 |
Safari
Full support 7 |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support 22 |
Opera Android
Full support 14 |
Safari iOS
Full support 8 |
Samsung Internet Android
Full support Yes |
Legend
- Full support
- Full support
- Partial support
- Partial support
- Requires a vendor prefix or different name for use.'
- Requires a vendor prefix or different name for use.
See also
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications ([[../../../../../../../mdn.github.io/to-do-notifications/index|view example live]].)
IDBCursor.advance() by Mozilla Contributors is licensed under CC-BY-SA 2.5.