我在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();
}
但是我对如何根据此处的滚动传递新数据或页面数据感到有些困惑。有人可以对我如何执行以下操作给出一点解释:
- 获取第一个列表(我可以这样做)
- 当用户向下滚动时获取更多列表(使用分页下一页)
- 从内存中删除以前获取的数据,并根据请求重新获取(向上滚动)。