https://www.youtube.com/watch?v=zlERo_JMGCw 29:38で Matthew Podwysocki イベントを見ていました。
ネットフリックスのスクロールをどのように解決したかを彼が説明しています。以前のデータがクリーンアップされ、さらに追加されると、ユーザーはスクロールしてさらにデータを取得します (ただし、スクロールバックすると、以前のデータが再び表示されます)。
同様のことをしたかったのですが、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();
}
しかし、ここのスクロールに従って新しいデータまたはページデータを渡す方法について少し混乱しています。次のことを行う方法について誰かが少し説明できますか:
- 最初のリストを取得します (私はそれを行うことができます)
- ユーザーが下にスクロールすると、さらにリストを取得します (ページングの次のページを使用)
- 以前にフェッチしたデータをメモリから削除し、要求に応じて再フェッチします (上にスクロール)。