web-dev-qa-db-fra.com

Enregistrer l'état de la session lors du changement d'option de recherche ou après avoir obtenu les résultats de la recherche?

J'ai un widget qui aide à rechercher des publications sur mon site.

Voici une photo du widget (le site n'est pas encore en ligne)

picture

Je veux utiliser le stockage de session html5 pour stocker les options de widget entre les pages.

Lorsqu'une nouvelle page est chargée, le widget passe à l'état enregistré et affiche les résultats obtenus avec les options enregistrées.

Je suis dans le doute parmi 2 solutions concernant le stockage des données du widget:

  1. Pour stocker l'état du widget lorsque l'utilisateur déclenche une recherche (le bouton bleu) afin que la nouvelle page affiche les résultats de la page précédente, avec l'inconvénient que si l'utilisateur ne déclenche pas la recherche avant de changer de page, ces changements d'options sont non enregistré pour que l'utilisateur trouve des options différentes de celle qu'il a laissée dans la page précédente.

  2. Pour enregistrer l'état lorsque l'utilisateur modifie l'option et charger la nouvelle page avec les résultats. l'inconvénient est que, si l'utilisateur ne déclenche pas la recherche avant de quitter la page, il trouvera cette fois des résultats différents de ceux qu'il avait dans la page précédente, car ils sont calculés à l'aide des options stockées.

Alors, est-ce une meilleure cohérence dans les résultats ou dans les options?

Une solution pourrait être de déclencher la recherche à chaque changement d'option, mais j'ai peur de surcharger trop le serveur avec les requêtes ajax.

3
Bakaburg

Si ce n'est pas Google qui introduit une nouvelle méthode de recherche, où les résultats s'affichent automatiquement avant même d'appuyer sur la touche Entrée, je suis sûr que c'est pas la voie à suivre. Personnellement, je déteste quand Google fait ça. Le chargement de données, l'envoi d'une demande au serveur, le traitement en javascript et le remplissage de la page avec cela entraînent généralement un retard important - c'est une mauvaise expérience utilisateur. Je peux le supporter, et je m'y attend en fait, lorsque j'appuie sur la touche Entrée - le décalage m'assure que l'application fonctionne. Mais si je suis en train de taper, de changer de bouton radio et que l'interface ne répond plus, ce n'est vraiment pas cool.

C'est pourquoi je vous recommande cette solution:

  1. Faire une demande au serveur uniquement lorsque le bouton bleu est enfoncé.
  2. Chaque fois qu'un autre bouton est enfoncé (ou un filtre tapé; toute option changée) stocke les options dans les cookies. 2a. De plus, lorsque les options sont modifiées, faites clignoter le bouton bleu pour indiquer la nécessité d'appuyer dessus.
  3. Lorsqu'une autre page se charge, chargez les options des cookies.
2
Markus von Broady