【发布时间】:2023-03-12 19:40:01
【问题描述】:
我在https://www.youtube.com/watch?v=zlERo_JMGCw 29:38 观看 Matthew Podwysocki 活动
他解释了他们如何解决 netflix 上的滚动问题。用户滚动以获取更多数据,因为以前的数据被清理并且更多的数据加起来(但向后滚动会再次显示以前的数据)。
我想做类似的,但我抓住了 netflix 演示代码:
function getRowUpdates(row) {
var scrolls = Rx.Observable.fromEvent(document, 'scroll');
var rowVisibilities =
scrolls.throttle(50)
.map(function(scrollEvent) {
return row.isVisible(scrollEvent.offset);
})
.distinctUntilChanged();
var rowShows = rowrowVisibilities.filter(function(v) {
return v;
});
var rowHides = rowrowVisibilities.filter(function(v) {
return !v;
});
return rowShows
.flatMap(Rx.Observable.interval(10))
.flatMap(function() {
return row.getRowData().takeUntil(rowHides);
})
.toArray();
}
但是我对如何根据滚动在这里传递新数据或页面数据有点困惑。有人可以解释一下我如何执行以下操作:
- 获取第一个列表(我可以做到)
- 在用户向下滚动时获取更多列表(使用分页下一页)
- 从内存中删除以前获取的数据,并根据请求重新获取(向上滚动)。
【问题讨论】:
标签: javascript scroll xmlhttprequest rxjs rxjs5