2017-08-18 1 views
0

J'utilise un jqGrid en tant que frontal pour une grande base de données mongo. L'utilisateur souhaite utiliser les filtres jqGrid pour afficher les données dans la base de données. Je suis sûr que cela fonctionnait bien quand nous l'avons implémenté. Les filtres ont été transmis et appliqués à l'ensemble de données mongo et tout a bien fonctionné. Mais maintenant, si elles font glisser la barre de défilement jusqu'à mi-point dans la grille, il faut très longtemps pour aller chercher les enregistrements pour remplir cette vue. J'ai activé la connexion pour l'ajax interfacé à notre base de données mongo pour consigner les demandes de pages provenant du jqGrid. Cet ensemble de données dans mongo contient environ 54 000 lignes.Défilement virtuel jqGrid, barre de défilement glisser, demande toutes les pages

Lorsque le réseau est chargé pour la première fois, il demande correctement la page 1 à partir de la base de données. Si je descends lentement, il demande chaque page dont il a besoin pour remplir ma fenêtre. Si je déplace rapidement la barre de défilement au point central et la relâche, le jqGrid demande chaque page entre la page où j'étais avant de faire glisser la barre de défilement et l'endroit où je l'ai libéré. Dans ce cas, j'ai commencé à la page 1 et j'ai demandé la page 2, 3, 4, 5, 6, ..., 460. C'est environ 460 demandes de pages individuelles.

Je pensais que nous avions testé cela au début et vu qu'il passait par dessus des pages dont il n'avait pas besoin et allait directement à la page (s) nécessaire pour l'endroit où nous avons publié la barre de défilement. Est-ce que je me trompe sur le fonctionnement du défilement virtuel? Est-ce qu'il demande chaque page du début du fichier à la page que je veux voir? Je n'arrive pas à trouver ce niveau de détail dans la documentation ou via google recherches pour voir comment il devrait agir.

+0

C'est une bonne idée de dire quelle version de jqGrid est utilisée. Cela aidera beaucoup. [Guriddo jqGrid] (http://www.guriddo.net) exemple qui ne passe pas par toutes les pages peut être trouvé [ici] (http://www.guriddo.net/demo/demos/jqgrid/paging/scrollbar/ default.php) –

Répondre

0

Merci Tony. L'astuce est ce que vous définissez l'option de défilement. Vrai ou 1 (un) ont des comportements très différents. A partir de l'option de défilement "Crée des grilles de défilement dynamiques", les éléments du pager sont désactivés et nous pouvons utiliser la barre de défilement verticale pour charger les données. Lorsque le défilement est défini sur une valeur entière (exemple 1), la grille ne contient que les lignes visibles. "

+0

C'est la raison pour laquelle nous demandons par exemple, car il est très difficile de reproduire toutes les situations problématiques. –