2017-08-18 6 views
0

大規模なmongoデータベースのフロントエンドとしてjqGridを使用しています。ユーザーは、jqGridフィルターを使用してデータベース内のデータを表示する必要があります。私たちがそれを実装したときにこれがうまくいっていたと確信していますフィルタは渡され、mongoデータセットに適用され、すべて正常に動作しています。jqGrid仮想スクロール、ドラッグスクロールバー、すべてのページをリクエスト

しかし、スクロールバーをグリッドの中央にドラッグすると、そのビューを満たすためにレコードをフェッチするのに非常に時間がかかります。私はjqGridから来るページのリクエストを記録するために、mongoデータベースにインターフェイスされたajaxのログを有効にしました。 mongoのこのデータセットには約54,000行が含まれています。

グリッドが最初に読み込まれると、データベースからページ1が正しく要求されます。私がゆっくりとページを下ろすと、ビューポートを埋めるために必要な各ページを尋ねます。スクロールバーをすばやく中間点までドラッグしてリリースすると、jqGridはスクロールバーをドラッグする前のページとリリースした場所の間のすべてのページを要求します。この場合、私は1ページ目から始めて、2,3,4,5,6、...、460のページを要求しました。これは約460の個別ページ要求です。

私はこれを最初にテストし、必要のないページをスキップして、スクロールバーをリリースした場所に必要なページにまっすぐ行っているのを見ました。

私は仮想スクロールの仕組みについて誤解していますか?ファイルの先頭から見たいページまですべてのページを要求しますか?どのように動作するべきかを見るために、ドキュメンテーションやGoogleの検索でその詳細レベルを見つけることはできないようです。

+0

使用するjqGridのバージョンを確認することをお勧めします。これは多くの助けになります。 [Guriddo jqGrid](http://www.guriddo.net)すべてのページを通過しない例はこちら[here](http://www.guriddo.net/demo/demos/jqgrid/paging/scrollbar/ default.php) –

答えて

0

ありがとうトニー。トリックはスクロールオプションを設定するものです。真実または1(1)は非常に異なる行動をとる。スクロールオプションのドキュメントから "ダイナミックスクロールグリッドを作成します。有効にするとページャー要素が無効になり、垂直スクロールバーを使用してデータをロードできます。スクロールが整数値(例1)に設定されている場合、グリッドは可視線を保持します。

+0

これは、すべての問題のある状況を再現することが非常に難しいため、例として尋ねる理由です。 –

関連する問題