gpt4 book ai didi

javascript - 使用 IndexedDB 游标进行分页

转载 作者:太空狗 更新时间:2023-10-29 14:56:43 27 4
gpt4 key购买 nike

我有一个 IndexedDB 数据存储,里面有几百个对象。我想根据我在该商店的一个索引中的顺序从中获取项目 40-59。有没有一种方法可以做到这一点,而无需在开始使用数据之前简单地调用 cursor.continue() 39 次?就处理时间而言,这似乎相当浪费。

最佳答案

我有同样的问题,cursor.advance(40) 是你想要使用的。

我花了一段时间才弄明白的一件事可能对其他人有用,如果你想推进光标并遍历结果,你要么需要在单独的 openCursor().onsuccess< 中调用它们 处理程序,或实现某种跟踪以防止它们在同一请求中被调用或引发 InvalidStateError 异常。这可以像这样完成:

独立处理程序

// advance first
store.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
cursor.advance(40);
};

// then iterate
objectStore.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
cursor.continue();
});

相同的处理程序

// create flag for advancing
var advancing = true;

store.openCursor().onsuccess = function(event) {

var cursor = event.target.result;

// advancing
if (advancing === true) {

cursor.advance(40);

// set advancing flag to false so we don't advance again
advancing = false;

}
// continuing
else {

cursor.continue();

}

}

规范引用:http://www.w3.org/TR/IndexedDB/#widl-IDBCursor-advance-void-unsigned-long-countMDN 引用示例:https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.advance

关于javascript - 使用 IndexedDB 游标进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5164037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com