为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

不负相思意 2023-06-29 22:36:29
根据文件:var request = objectStore.get(key);参数钥匙标识要检索的记录的键或键范围。所以我期望当我使用get键范围调用时,例如IDBKeyRange.bound(0, 4),当请求成功时我应该以某种方式收到四个值?但我只看到一个值(在 Chromium 中测试)。这是错误的文档或错误的实现,还是我缺少一种无需执行多个请求即可访问所有结果的方法?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

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.');

    }

  };

}

查看完整回答
反对 回复 2023-06-29
  • 1 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信