4
スクロールアルゴリズム—データのフェッチと表示の改善
理論的な問題について少し述べたいと思います。 私が無限のスクロールを持っていて、ここで説明されているようなものを実装したとします:https : //medium.com/frontend-journeys/how-virtual-infinite-scrolling-works-239f7ee5aa58。特別なことは何もありません。それは、データのテーブル、たとえばNxNであると言えば十分です。ユーザーは、スプレッドシートのように、右下にスクロールでき、現在のビューとマイナスのデータのみを表示します。扱う。 ここで、次のような関数を使用して、そのビューでデータを「フェッチして表示」するのに約10ミリ秒かかるとしましょう。 get_data(start_col, end_col, start_row, end_row); これは、スクロールバーのどこかをクリックするか、必要なデータをレンダリングするために「わずかにスクロール」するときに即座に読み込まれます。ただし、すべての「未完了のフェッチイベント」について、必要なビューデータのレンダリングに2倍の時間がかかると仮定します(メモリ、GC、その他いくつかの理由により)。したがって、ゆっくりと意図的に左から右にスクロールすると、データのロードをトリガーする100以上のスクロールイベントが生成される可能性があります-最初は著しく遅延はありません。フェッチは10ミリ秒未満で発生しますが、すぐに20ミリ秒、次に40ミリ秒かかり、必要なデータをロードするために1秒以上かかるまで、かなりの遅延が発生します。さらに、デバウンス/遅延のようなものは使用できません。 どのような考慮事項を考慮に入れる必要があり、これを実現するためのサンプルアルゴリズムはどのように見えますか?これは、10000 x 10000のスプレッドシート(Excelはすべてのデータを一度に読み込むことができます)を想定した、データに対するユーザー操作の例です-https://gyazo.com/0772f941f43f9d14f884b7afeac9f414。