bound()
方法在
IDBKeyRange
interface creates a new key range with the specified upper and lower bounds. The bounds can be open (that is, the bounds exclude the endpoint values) or closed (that is, the bounds include the endpoint values). By default, the bounds are closed.
var myIDBKeyRange = IDBKeyRange.bound(lower, upper); var myIDBKeyRange = IDBKeyRange.bound(lower, upper, lowerOpen); var myIDBKeyRange = IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen);
specifies the lower bound of the new key range.
specifies the upper bound of the new key range.
indicates whether the lower bound excludes the endpoint value. The default is false.
Indicates whether the upper bound excludes the endpoint value. The default is false.
IDBKeyRange
: The newly created key range.
此方法可能引发
DOMException
of the following type:
| 异常 | 描述 |
|---|---|
| DataError |
The following conditions raise an exception:
|
The following example illustrates how you'd use a bound key range. Here we declare a
keyRangeValue = IDBKeyRange.bound("A", "F");
— a range between values of "A" and "F". We open a transaction (using
IDBTransaction
) and an object store, and open a Cursor with
IDBObjectStore.openCursor
, declaring
keyRangeValue
as its optional key range value. This means that the cursor will only retrieve records with keys inside that range. This range includes the values "A" and "F", as we haven't declared that they should be open bounds. If we used
IDBKeyRange.bound("A", "F", true, true);
, then the range would not include "A" and "F", only the values between them.
注意 : For a more complete example allowing you to experiment with key range, have a look at the idbkeyrange directory in the indexeddb-examples repo ( view the example live too )。
function displayData() {
var keyRangeValue = IDBKeyRange.bound("A", "F");
var transaction = db.transaction(['fThings'], 'readonly');
var objectStore = transaction.objectStore('fThings');
objectStore.openCursor(keyRangeValue).onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
var listItem = document.createElement('li');
listItem.innerHTML = '<strong>' + cursor.value.fThing + '</strong>, ' + cursor.value.fRating;
list.appendChild(listItem);
cursor.continue();
} else {
console.log('Entries all displayed.');
}
};
};
| 规范 | 状态 | 注释 |
|---|---|---|
|
索引数据库 API 2.0
The definition of 'bound()' in that specification. |
推荐 | |
|
索引数据库 API 草案
The definition of 'bound()' in that specification. |
推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
bound
|
Chrome
24
|
Edge 12 |
Firefox
16
|
IE 部分支持 10 | Opera 15 | Safari 7 | WebView Android Yes | Chrome Android Yes | Firefox Android 22 | Opera Android 14 | Safari iOS 8 | Samsung Internet Android Yes |
完整支持
部分支持
要求使用供应商前缀或不同名称。
IDBDatabase
IDBTransaction
IDBKeyRange
IDBObjectStore
IDBCursor
IDBKeyRange
bound()
includes()
lowerBound()
only()
upperBound()
IDBCursor
IDBCursorSync
IDBCursorWithValue
IDBDatabase
IDBDatabaseException
IDBDatabaseSync
IDBEnvironment
IDBEnvironmentSync
IDBFactory
IDBFactorySync
IDBIndex
IDBIndexSync
IDBObjectStore
IDBObjectStoreSync
IDBOpenDBRequest
IDBRequest
IDBTransaction
IDBTransactionSync
IDBVersionChangeEvent
IDBVersionChangeRequest