IDBCursor.advance()
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 (view example live.)>
function advanceResult() { list.textContent = ''; const transaction = db.transaction(['rushAlbumList'], "readonly"); const objectStore = transaction.objectStore('rushAlbumList'); objectStore.openCursor().onsuccess = function(event) { const cursor = event.target.result; if(cursor) { const 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
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
advance |
23 |
12 |
10 |
10 |
15 |
7 |
≤37 |
Yes |
22 |
14 |
8 |
Yes |
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 (view example live.)
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor/advance