- TD,
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 :
- 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.
- 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 :
- Adapter le nombre de pages affichées à la largeur de la page.
- 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.