IDBCursor: phương thức continue()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers.
Phương thức continue() của giao diện IDBCursor đưa con trỏ đến vị trí tiếp theo theo hướng của nó, tới mục có khóa khớp với tham số khóa tùy chọn. Nếu không chỉ định khóa, con trỏ sẽ chuyển đến vị trí tiếp theo ngay lập tức theo hướng hiện tại của nó.
Cú pháp
continue()
continue(key)
Tham số
keyOptional-
Khóa để đặt vị trí con trỏ.
Giá trị trả về
Không có (undefined).
Ngoại lệ
Phương thức này có thể ném ra một DOMException thuộc một trong các kiểu sau:
TransactionInactiveErrorDOMException-
Được ném ra nếu transaction của
IDBCursornày không hoạt động. DataErrorDOMException-
Được ném ra nếu tham số khóa có bất kỳ điều kiện nào sau đây:
- Khóa không phải là một khóa hợp lệ.
- Khóa nhỏ hơn hoặc bằng vị trí hiện tại của con trỏ, và hướng của con trỏ là
nexthoặcnextunique. - Khóa lớn hơn hoặc bằng vị trí hiện tại của con trỏ, và hướng của con trỏ là
prevhoặcprevunique.
InvalidStateErrorDOMException-
Được ném ra nếu con trỏ đang được duyệt hoặc đã duyệt quá phần cuối.
Ví dụ
Trong đoạn ví dụ đơn giản này, chúng ta tạo một transaction, lấy một object store, rồi dùng một con trỏ để duyệt qua tất cả các bản ghi trong object store. Con trỏ không yêu cầu chúng ta chọn dữ liệu theo khóa; chúng ta chỉ cần lấy toàn bộ dữ liệu. Lưu ý thêm rằng ở mỗi vòng lặp, bạn có thể lấy dữ liệu từ bản ghi hiện tại dưới đối tượng con trỏ bằng cursor.value.foo. Để xem ví dụ hoàn chỉnh, hãy xem ví dụ IDBCursor (xem bản chạy trực tiếp).
function displayData() {
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
cursor.continue();
} else {
console.log("Entries all displayed.");
}
};
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbcursor-continue①> |
Tương thích trình duyệt
Xem thêm
- Using IndexedDB
- Bắt đầu transaction:
IDBDatabase - Sử dụng transaction:
IDBTransaction - Thiết lập một phạm vi khóa:
IDBKeyRange - Truy xuất và thay đổi dữ liệu của bạn:
IDBObjectStore - Sử dụng con trỏ:
IDBCursor - Tham chiếu ví dụ: To-do Notifications (xem bản chạy trực tiếp).