L'algorithme de pagination est un problème qui préoccupe beaucoup les développeurs Web. Presque toutes les applications liées aux bases de données impliquent l'algorithme de pagination. De nombreuses personnes ont écrit des documents dans ce domaine, et il semble qu'il n'y ait rien à discuter, mais en fait, changeons. En modifiant la représentation des données, un meilleur algorithme de pagination peut être utilisé. Voyons si nous pouvons faire mieux maintenant.
Parlons d’abord de quelques méthodes existantes.
L'une consiste à parcourir DataGrid. Cette méthode est la plus simple, mais elle n'est pas efficace et nécessite de lire toutes les données devant les données requises.
La seconde consiste à remplir la méthode de pagination de DataSet en spécifiant l'enregistrement de départ et le numéro d'enregistrement DbDataAdapter.Fill. Cette méthode est également simple, mais elle n'est pas non plus efficace et nécessite de lire toutes les données devant les données requises.
La troisième consiste à sélectionner les enregistrements requis au milieu du tableau via une sélection multiple en haut et un tri multiple ; afin d'éviter que les données des pages adjacentes ne soient répétées, il est nécessaire d'utiliser not in, ce qui entraînera les données de queue de la table contenant une grande quantité de données à sélectionner sera considérablement réduite.
Supposons que nous modifions la forme de présentation du tableau, en prenant comme exemple la présentation Grille avec barres de défilement dans l'application C/S traditionnelle. En fait, cette méthode est la méthode de présentation la plus appropriée pour les tables de base de données et la méthode de présentation couramment utilisée dans ; Applications Web La méthode de connexion du numéro de page 1,2,3... ou la méthode de la barre de navigation du numéro de page des boutons de la page précédente et de la page suivante sont un dernier recours, car une technologie simple ne peut pas être utilisée pour implémenter des barres de défilement dans les applications Web. Grille.
Les tables de la base de données ont toutes des clés primaires pour distinguer les différents enregistrements dans les tables ; les données dans la grille sur l'interface utilisateur ont également logiquement des clés primaires, sinon les données seront ambiguës. Cependant, dans la plupart des applications, il n'y a pas de paramètre. Il est impossible de connaître la clé primaire des données lues ; même si quelques applications l'ont configurée, elles connaissent la clé primaire des données lues, mais elles ne l'appliquent pas en fait à la pagination, tant que vous la connaissez ; la clé primaire des données lues, vous pouvez effectuer une pagination très facilement.
L'algorithme de la page d'accueil est très simple
sélectionner la taille de la page supérieure * à partir du nom du tableau, trier par clé primaire
Pour les tableaux avec barres de défilement, les données défilent séquentiellement page par page Même si vous faites glisser la barre de défilement, vous pouvez faire défiler page par page jusqu'à la position sélectionnée. l'algorithme pour les nouvelles pages est
sélectionnez la taille de la page supérieure * à partir du nom de la table où clé primaire > clé primaire enregistrée à la fin de la page précédente, triez par clé primaire
Si la mise en cache est utilisée, toutes les données ne doivent être téléchargées qu'une seule fois et les nouvelles données ne seront téléchargées que lors du défilement jusqu'à la fin.
Cet algorithme nécessite de connaître la clé primaire des données dans la grille et d'appliquer les données de clé primaire à la pagination ; pour plusieurs clés primaires et tables triées, l'algorithme est le même, mais les instructions sont plus compliquées. Non seulement vous pouvez commencer à partir de la page d'accueil, mais vous pouvez également commencer à partir de la dernière page et faire défiler vers l'avant.
Il n'y a aucun problème avec les performances de cet algorithme. Quelle que soit la taille de la table, l'enregistrement à quelle position est sélectionné est le même. Il est plus approprié d'utiliser la méthode de sélection de pagination de la page d'accueil, de la page précédente, de la page suivante. dernière page, et convient mieux aux barres de défilement. Grid ne convient pas à la pagination des numéros de page spécifiés.
Pour une grille avec des barres de défilement utilisant cet algorithme, veuillez vous référer à notre démonstration www.BizStruct.cn .
Lorsque vous posez des questions, veuillez d'abord considérer deux points, sinon vous risquez de ne pas réaliser les avantages de la combinaison de cet algorithme avec notre système :
Premièrement : lequel est le plus pratique, le formulaire de demande C/S traditionnel ou le formulaire de pagination sur le Web ?
Premièrement, à quel point le tableau avec barres de défilement que nous avons implémenté est-il différent du tableau des applications C/S traditionnelles.
Explication de la réponse :
Certaines réponses indiquent que des opérations telles que "passer à la page xx" ne peuvent pas être mises en œuvre.
Mais réfléchissons-y, dans un environnement d'application C/S, si quelqu'un utilise cette méthode de saut de page, tout le monde trouvera certainement cela bizarre.
La grille avec barres de défilement que nous avons implémentée est presque aussi rapide que la précédente application C/S dans un environnement LAN, et elle est également très rapide dans un environnement WAN.
Le « saut à la page XX » des applications Web est en fait un dernier recours Si la grille des applications C/S traditionnelles peut être implémentée, pourquoi devrions-nous l'utiliser ?