IDBObjectStore.get 与 IDBKeyRange - 请求仅返回单个对象?

根据文件:

var request = objectStore.get(key);

参数

钥匙

  • 标识要检索的记录的键或键范围。

所以我期望当我使用get键范围调用时,例如IDBKeyRange.bound(0, 4),当请求成功时我应该以某种方式收到四个值?但我只看到一个值(在 Chromium 中测试)。这是错误的文档或错误的实现,还是我缺少一种无需执行多个请求即可访问所有结果的方法?


不负相思意
浏览 88回答 1
1回答

四季花海

get(query)查询参数可以是标识要检索的记录的键或IDBKeyRange。如果指定了范围,该方法将检索该范围中的第一个现有值。-- IndexedDB API 2.0 - W3C* 强调我的。要获取所有值,请使用orIDBObjectStore.getAll()代替:.get()IDBObjectStore.openCursor()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.');    }  };}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript