IDBKeyRange: phương thức tĩnh upperBound()
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 tĩnh upperBound() của giao diện IDBKeyRange tạo một phạm vi khóa mới chỉ có giới hạn trên. Mặc định, nó bao gồm giá trị ở đầu mút trên và là phạm vi đóng.
Cú pháp
IDBKeyRange.upperBound(upper)
IDBKeyRange.upperBound(upper, open)
Tham số
upper-
Chỉ định giới hạn trên của phạm vi khóa mới.
openOptional-
Cho biết giới hạn trên có loại trừ giá trị đầu mút hay không. Mặc định là
false.
Giá trị trả về
IDBKeyRange: Phạm vi khóa vừa được tạo.
Ngoại lệ
DataErrorDOMException-
Được ném ra nếu khóa gắn với tham số
upperkhông phải là một khóa hợp lệ.
Ví dụ
Ví dụ sau minh họa cách dùng phạm vi khóa chỉ có giới hạn trên. Ở đây chúng ta khai báo keyRangeValue = IDBKeyRange.upperBound("F"); - một phạm vi bao gồm giá trị "F" và mọi giá trị trước nó. Chúng ta mở một transaction (dùng IDBTransaction) và một object store, rồi mở một cursor bằng IDBObjectStore.openCursor, với keyRangeValue là giá trị phạm vi khóa tùy chọn.
Nếu dùng IDBKeyRange.upperBound("F", true);, thì phạm vi sẽ loại trừ "F" và chỉ gồm các giá trị trước nó.
Note: Để có ví dụ đầy đủ hơn cho phép bạn thử nghiệm phạm vi khóa, hãy xem repo IDBKeyRange-example của chúng tôi (xem ví dụ trực tiếp nữa).
function displayData() {
const keyRangeValue = IDBKeyRange.upperBound("F");
const transaction = db.transaction(["fThings"], "readonly");
const objectStore = transaction.objectStore("fThings");
objectStore.openCursor(keyRangeValue).onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.fThing}, ${cursor.value.fRating}`;
list.appendChild(listItem);
cursor.continue();
} else {
console.log("Entries all displayed.");
}
};
}
Thông số kỹ thuật
| Specification |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbkeyrange-upperbound①> |
Tương thích trình duyệt
Xem thêm
- Dùng IndexedDB
- Bắt đầu transaction:
IDBDatabase - Dùng transaction:
IDBTransaction - Thiết lập một phạm vi khóa:
IDBKeyRange - Truy xuất và sửa đổi dữ liệu của bạn:
IDBObjectStore - Dùng cursor:
IDBCursor - Ví dụ tham khảo: To-do Notifications (Xem ví dụ trực tiếp).