Question

Quel est le meilleur pour gérer la pagination? Côté serveur ou le faire dynamiquement en utilisant javascript?

Je travaille sur un projet qui demande beaucoup d’ajustements et d’ajout dynamique de données. C’est pourquoi j’ai travaillé sur un système de pagination javascript qui utilise le dom - mais je commence à penser qu’il serait préférable de gérer tout le côté serveur.

Quelles sont les pensées de chacun?

Était-ce utile?

La solution

La bonne réponse dépend de vos priorités et de la taille de l'ensemble de données à paginer.

La pagination côté serveur est préférable pour:

  • Grand ensemble de données
  • Chargement de page initiale plus rapide
  • Accessibilité pour ceux qui n'exécutent pas javascript

La pagination côté client est préférable pour:

  • Petit ensemble de données
  • Chargement plus rapide des pages suivantes

Donc, si vous paginez pour des raisons essentiellement esthétiques, il est plus logique de le gérer côté client. Et si vous paginez pour réduire le temps de chargement initial, côté serveur est le choix évident.

Bien sûr, l'avantage du côté client sur les temps de chargement des pages suivantes diminue si vous utilisez Ajax pour charger les pages suivantes.

Autres conseils

Si vous le faites côté client, votre utilisateur téléchargera au début toutes les données inutiles et supprimera le principal avantage de la pagination.

La meilleure façon de le faire pour ce type d’applications AJAX consiste à ce que AJAX appelle le serveur pour la page suivante et d’ajouter la mise à jour de la page en cours à l’aide du script côté client.

Si vous avez de grandes pages et un grand nombre de pages, il vaut mieux demander des pages en morceaux au serveur via AJAX. Laissez donc le serveur faire la pagination, en fonction de votre URL de requête.

Vous pouvez également pré-extraire les prochaines pages que l'utilisateur consultera probablement pour que l'interface semble plus réactive.

S'il n'y a que peu de pages, il peut être préférable de tout récupérer à l'avance et de paginer sur le client.

Même avec de petites tailles de données, le meilleur choix serait la pagination côté serveur. Vous n'aurez pas à vous inquiéter plus tard si votre application Web évolue davantage.

Et pour les plus grandes tailles de données, la réponse est évidente.

Côté serveur - envoyez au client juste assez de contenu pour la vue actuelle.

Dans un monde de limites pratiques, je souhaiterais utiliser une page côté serveur pour conserver toutes les ressources associées à l'envoi des données. En outre, le serveur doit se protéger contre un client malveillant / défectueux demandant une page ÉNORME.

Une fois que le code est joyeusement utilisé, j'ajouterais "smarts". au client pour obtenir le " next " et " précédent " page et maintenez cela en mémoire. Lorsque l'utilisateur passe à la page suivante, mettez à jour votre cache.

Si le logiciel client utilise ce type de mise en cache de page, prenez en compte la vitesse à laquelle vos données vieillissent (risque de changer) et vérifiez si votre page de données en cache est toujours valide. Peut-être ré-demander si il vieillit plus de 2 minutes. Peut-être avoir un "sale" drapeau dedans. Quelque chose comme ca. J'espère que ceci vous aidera. :)

Voulez-vous dire que votre code JavaScript contient toutes les données en mémoire et ne s'affiche qu'une page à la fois? Ou qu'il télécharge chaque page du serveur selon les besoins, en utilisant AJAX?

Si c'est le dernier cas, vous devrez peut-être aussi penser au tri. Si vous triez à l'aide de JavaScript, vous ne pourrez trier qu'une page à la fois, ce qui n'a pas beaucoup de sens. Votre tri doit donc être effectué sur le serveur.

Je préfère la pagination côté serveur. Cependant, lors de son implémentation, vous devez vous assurer que vous optimisez votre SQL correctement. Par exemple, je crois en MySQL. Si vous utilisez l'option LIMIT, il n'utilise pas l'index. Vous devez donc réécrire votre SQL pour utiliser correctement l'index.

G-Man

Une autre chose à souligner ici est que très rarement, vous serez limité à la pagination dans un ensemble de données brutes.

Vous devrez peut-être rechercher certains termes dans une ou plusieurs colonnes que vous affichez, puis trier sur quelques colonnes, puis donner aux utilisateurs la possibilité de feuilleter ce jeu de données filtré.

Dans une situation comme celle-ci, vous devrez peut-être déterminer s'il serait préférable que cette logique soit recherchée et / ou triée du côté client ou du côté serveur.

Une autre chose à considérer est que l’API de recherche sur le cloud d’Amazon vous confère de très puissantes capacités de recherche et que vous souhaiterez évidemment permettre à la recherche sur le cloud de gérer la recherche et le tri pour vous si vos données y sont hébergées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top