Rendre la pagination intelligente

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous :)

J’ai toujours trouvé la pagination sur les sites particulièrement frustrante. Je ne la trouve pas assez intelligente et elle pourrait être bien plus pratique avec quelques modifications que je vais tenter de proposer ici.

Tout d’abord, l’exemple le plus parlant des problèmes liés à la pagination tient dans cette image :

Je vois ici deux problèmes principaux :

  1. Bien que la largeur de la barre permettrait largement d’afficher un lien pour chaque page, la pagination est coupée pour en masquer la plupart.
  2. La seconde page est rendue invisible alors que son affichage n’aurait pas modifié la largeur totale de la liste des pages.

Il est ainsi nécessaire de cliquer deux fois au lieu d’une pour accéder à certaines pages dont rien ne justifie a priori le masquage.

Voici ce que je propose :

  1. Adapter le nombre de pages affichées à la largeur de la page.
  2. Ne pas scinder la pagination pour ne masquer qu’une page.

Le premier point n’est pas faisable avec un rendu par le serveur uniquement. Il faudrait donc envoyer l’intégralité des numéros de page puis les filtrer dynamiquement en Javascript. Ce filtrage côté client permet également d’adapter dynamiquement le nombre de pages affichées lorsque la fenêtre est redimensionnée. Il pourrait y avoir des problèmes avec les sujets ayant un grand nombre de pages, quoique L’open bar à smoothies n’a que cent pages à l’heure où j’écris et qu’un seul lien contient très peu de données (code ci-après), donc la charge ne serait pas forcément très élevée. Du reste, la plupart des sujets n’ont pas tant de pages que cela. Après un calcul rapide, le poids total de la pagination pour sujet ayant beaucoup de pages et un titre long ne devrait pas dépasser quelques dizaines de kilooctets.

1
<li><a href="/forums/communaute/bar-smoothies/?page=24">24</a></li>

Si ce comportement dynamique côté client n’est pas possible, on peut au moins implémenter le deuxième point et augmenter le nombre de pages affichées.

« LaTeX is to a book what a set of blueprints is to a building » (Paul Dulaney) | Mon planétaire

+9 -2

Il faudrait donc envoyer l’intégralité des numéros de page puis les filtrer dynamiquement en Javascript.

Mouais. Il suffit d'envoyer uniquement le nombre de page, le reste, on peut le trouver. Je ne sais pas si le site actuel nécessite Javascript pour être fonctionnel.

  • si on veut proposer une version sans Javascript : envoyer la page tel qu'elle est actuellement et envoyer un script qui après un algorithme créé par un génie de contributeur, optimise le nombre de pages affichés.
  • si on s'en fous de ceux qui ont pas de Javascript activé : on envoie juste le script qui fait sa magie. À noter que Google interprète le Javascript, donc il n'y a pas de problème d'indexation avec cette méthode.

À part ça, +1 !

On a décidé depuis un certain moment de ne plus supporter le no-JS, donc ce ne sera pas nécessaire. :)

Emeric

Bien que cette décision soit en elle-même discutable, il n'est pas pour autant nécessaire d'utiliser Javascript pour tout et n'importe quoi. En l'occurrence, ça paraît plutôt futile dans le cas présent.

Auteur du sujet

En fait, on peut laisser l’affichage comme aujourd’hui (en corrigeant le point 2 bien sûr). Sans Javascript, pas de changement et ça fonctionne toujours, et avec, connaissant le nombre total de pages, on peut faire les modifications nécessaires.

« LaTeX is to a book what a set of blueprints is to a building » (Paul Dulaney) | Mon planétaire

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte