web-dev-qa-db-fra.com

Meilleure approche pour maintenir / conserver les critères / filtres de recherche lorsque l'utilisateur revient sur une page de recherche?

Disons que j'ai une page de "recherche" de base sur mon site qui permet à l'utilisateur d'entrer des filtres et des mots clés. Ensuite, une liste de résultats apparaît et l'utilisateur peut cliquer sur un résultat pour accéder à une page "détails" sur cet élément. (Par exemple: véhicules pour un concessionnaire automobile, maisons pour une agence immobilière, employés pour une loi ou un cabinet médical).

Je souhaite que les critères de recherche que l'utilisateur a saisis soient remplis à nouveau lorsque l'utilisateur revient sur la page de recherche (soit via le bouton "Retour" du navigateur, soit en cliquant sur le lien "Retour aux résultats" sur la page de détails).

Ma question concerne les compromis UX des différentes implémentations. Dans le passé, je l'ai fait de deux manières:

  1. stocker les critères de recherche dans la session et lire la session lorsque la page de recherche est affichée
  2. utilisez HTML5 pushState (avec un polyfill comme history.js pour la compatibilité avec les anciens navigateurs) pour écrire chaque nouvelle combinaison de critères de recherche/filtre dans la chaîne de requête d'URL (de sorte que les résultats de la recherche réapparaissent lorsque l'utilisateur clique sur le bouton "retour" du navigateur), et transmettez également les critères de recherche aux pages "détails" (afin que les liens "retour à la recherche" de ces pages puissent renvoyer à la page de recherche avec ces mêmes critères/filtres).

Le problème que je rencontre avec la solution n ° 1 est que si l'utilisateur a désactivé les cookies, cela ne fonctionne pas. En outre, cela peut parfois être trop agressif ... par exemple, si l'utilisateur revient sur la page de recherche un jour plus tard, il est très probable faire vouloir démarrer une nouvelle recherche avec de nouveaux critères et filtres ( et pas seulement voir les mêmes critères d'hier). Je l'ai rencontré moi-même sur plusieurs sites Web de forum que je fréquente - où je frappe la page principale et cela limite déjà les messages du forum, cela me montre un montant limité basé sur une recherche que j'ai faite plus tôt (mais j'oublie cela et j'obtiens confus).

Le problème que je rencontre avec la solution # 2 est que c'est beaucoup plus de travail à mettre en œuvre. De plus, si l'utilisateur clique sur une autre page du site (où le lien de navigation vers la page de recherche n'a pas les critères de recherche précédents intégrés dans sa chaîne de requête d'URL), les critères sont perdus.

Alors ... des idées? Comment les gens mettent-ils généralement en œuvre ce modèle? Existe-t-il d'autres approches que les 2 que j'ai mentionnées ci-dessus? Ou peut-être que j'aboie le mauvais arbre et que je ne devrais même pas faire ça?

2
Jordan Lev

Du point de vue UX, je pense qu'un utilisateur veut généralement effectuer une nouvelle recherche s'il revient sur la page de recherche.

Dans ce cas, serait-il préférable d'avoir trois étapes, similaires à l'approche de Google? Rechercher> Résultats> Détails. Si vous revenez de la page des détails, vous êtes redirigé vers les résultats de la recherche. Le retour vous amènerait à une nouvelle recherche. Ceci est également plus facile à implémenter, car vous pouvez placer la requête de recherche dans l'URL. Certes, la recherche serait recommencée, mais cela ne devrait pas être un problème de performances si votre recherche est suffisamment efficace.

De plus, vous pouvez charger les filtres appropriés sur la page Résultats à partir des paramètres d'URL.

J'espère que cela aide!

3
Greg Wiley

La requête 1 peut être résolue en définissant les cookies enregistrés pour expirer, si telle est l'action souhaitée.

Souvent, les destinataires des cookies peuvent être rassurés en leur faisant connaître la raison des cookies, c'est-à-dire "faciliter la recherche", etc.

La façon dont nous avons abordé cette situation dans le passé est d'avoir un onglet à l'écran, dans notre situation, il était souhaitable de le fixer en bas à droite, mais vous auriez besoin d'enquêter sur votre meilleur emplacement en fonction de vos utilisateurs et de votre site.

Au fur et à mesure que les utilisateurs recherchaient, la recherche et les critères étaient ajoutés à une liste, qui était affichée en cliquant sur l'onglet, les 20 derniers ont été enregistrés avec le plus ancien abandon au fur et à mesure que davantage de recherches étaient effectuées, une simple étoile à côté de chaque recherche enregistrée permettait une l'utilisateur de "l'enregistrer" et cette recherche ne sera jamais supprimée de la liste.

La liste montrait le terme de recherche et tous les critères, et en cliquant dessus, cette recherche serait instantanément exécutée. En tant que recherche "enregistrée", ces types de recherche ne s'ajouteraient pas à la liste, car ils étaient déjà effectués à partir de cet emplacement.

0
DarrylGodden