Ext JS 4.1.3ドキュメントでbuffered: true
説明されているように、ストアでconfigを使用する場合は、次のことができます。
buffered:Booleanストアがページキャッシュ、レコードのページをプリフェッチしてキャッシュし、このページキャッシュからの読み込み要件を満たすことができるようにします。
バッファリングされたストアを使用するには、最初のページをロードしてプロセスを開始します。レンダリングされる行数は自動的に決定され、スクロール用にキャッシュを準備するために必要なページの範囲が要求され、キャッシュされます。例:
myStore.loadPage(1); // Load page 1
PagingScrollerがインスタンス化され、グリッド内のスクロールを監視し、必要に応じてページキャッシュからビューの行を更新します。また、ビューのスクロールがプリフェッチされたデータの両端近くのデータを利用するときに、新しいデータをページキャッシュにプルします。
プリフェッチされたデータからビューの更新をトリガーするマージンは、Ext.grid.PagingScroller.numFromEdge、Ext.grid.PagingScroller.leadingBufferZone、およびExt.grid.PagingScroller.trailingBufferZoneです。
より多くのデータをページキャッシュにロードするトリガーとなるマージンは、leadingBufferZoneとtrailingBufferZoneです。
デフォルトでは、5ページのデータのみがページキャッシュにキャッシュされ、ビューがデータセット内を下に移動すると、ページがバッファから「スクロール」します。この値をゼロに設定すると、ページがページキャッシュからスクロールアウトされることはなく、最終的にはデータセット全体がページキャッシュに存在する可能性があります。データセットが天文学的な比率に達しない限り、これが望ましい場合があります。
選択状態は、それらのレコードがストアのプライマリコレクションから循環するときにコレクションからレコードを破棄しないようにSelectionModelを構成することにより、ページ境界を越えて維持できます。これは、SelectionModelを次のように構成することによって行われます。
selModel: {
pruneRemoved: false
}
デフォルト:false
利用可能:4.0.0
上記のようpageSize
に、ストアの構成を必要なものに設定する必要もあります。
警告の言葉:無限スクロールを実行可能にするレコードの数が、ローカルストアに合理的に保持する必要のあるレコードの数を超えているため、無限スクロールのあるローカルストアの例は見つかりません。
つまり、ブラウザの速度を低下させるのはレンダリングだけではなく、ローカルで処理しようとしているデータの量でもあります。
無限スクロールを実装する必要があると感じた場合は、おそらくリモートでロードされたデータストアに変換するときです。