Bonjour à tous.
Mon petit soucis repose sur l’ergonomie d'un composant.
Je réalise un formulaire dans lequel l'utilisateur va être amené à sélectionner (un seul, normalement, mais peut etre plusieurs dans un futur proche) élément dans une liste.
Cependant, la taille de la liste me pose soucis : 140 000 éléments.
J'aurais pu utiliser un benet <select>... mais une telle volumétrie peut avoir pour conséquence : un temps de requetage en base, un temps d'affichage dans la page, un temps de recherche dans cette même liste...
Sachant que c'est une liste de personnalités, il peut même y avoir homonymie ! (je crois qu'il existe des cas ayant jusqu’à 5 homonymes).
Bref, le select ne me parait pas forcément être le meilleur choix. Je cherche donc à trouver un autre composant qui conviendrait mieux.
J'ai pensé à un outil de saisie en ajax avec une zone de saisie et une liste :
Ici ce sont des séries télé. Ce système fonctionne plutot bien. Le problème va être lors de la sélection multiple. J'imagine alors fonctionner avec un système de panier : quand on clique sur un élément de la liste, il s'ajoute sur le coté avec une croix rouge pour le retirer. on peut alors écrire/sélectionner un nouvel élément supplémentaire.
Un autre composant serait un tableau. Pour ceux qui connaissent PHPBB, dans l'espace admin entre autres, il propose parfois un tableau de sélection (de membres).
Un tableau, pour afficher 140 000 éléments ? Non. Je pourrais en brider légèrement l'affichage via une présélection de la première lettre comme ci-dessous :
Le souci de cette solution, pour des personnalités, est le temps de chargement. Pour la lettre B, il me retournera plus de 12 000 personnes Cela me prends une 10aine de secondes pour afficher la page, en localhost sans image. la mise en forme pour ce composant me convainc pas entièrement (je vous laisse imaginer comment 12 000 éléments prennent de la place sur la page) et me fait peur pour le temps de chargement.
Pour couronner le tout, un support mobile serait appréciable.
Avez-vous déjà été confronté à un tel soucis de recherche et présentation de volumétrie ?
Quel solution avez-vous retenue ?
Auriez-vous une autre solution a apporter ?
Partager