【发布时间】:2022-01-19 23:52:26
【问题描述】:
假设我有 100 个文档(注意:文档总数肯定会增加)。一次获取所有 100 个文档会导致性能问题,所以我认为我需要进行无限滚动并显示,比如说,第一次加载 15 个文档。每次触发无限滚动,它应该再获得 15 个文档。
基本上,docArr.length = 100
第一次加载:将docArr[0] 抓取到docArr[14]
触发无限滚动:将docArr[15] 抓取到docArr[29] 以此类推,直到docArr[99] 也被抓取
在PouchDB FAQ on Pagination中注明需要使用startkey、endkey、limit和skip。
我的文档 ID 格式为 doc-1。所以我有doc-1、doc-2、doc-3等
我按照建议的方法使用,所以我的代码是;
var options = {limit : 15};
function fetchNextPage() {
pouch.allDocs(options, function (err, response) {
if (response && response.rows.length > 0) {
let id_num = response[response.length - 1]._id.split('-').pop()
//on first trigger, the line above should get '15'
id_num = Number(id_num) + 1
let id = 'doc-' + id_num
//on first trigger, id = 'doc-16'
options.startkey = id;
options.skip = 1;
}
// handle err or response
});
}
但是,当我这样做时,当我触发无限滚动时,即使我增加了 id(我将其用作 @987654339 @)。
每次触发无限滚动(做分页)时如何获取接下来的 15 个文档?
【问题讨论】:
标签: ionic-framework pagination couchdb infinite-scroll pouchdb