web-dev-qa-db-fra.com

À quelle page devrions-nous aller après la suppression des résultats?

J'ai une liste d'utilisateurs affichés de manière paginée et j'ai besoin de déterminer comment gérer ces deux scénarios:

Scénario 1

  • 41 utilisateurs, 10 utilisateurs par page - Il y aura 5 pages et la 5ème page aura une seule ligne.
  • Si l'utilisateur affiche la 5e page et que le 41e utilisateur est supprimé, vers quelle page devez-vous rediriger l'utilisateur?

scénario 2

  • 38 utilisateurs, 10 utilisateurs par page - Il y aura 4 pages et la 4ème page aura 8 utilisateurs.
  • L'utilisateur 1 affiche actuellement la 3ème page.
  • L'utilisateur2 accède à la 3ème page et supprime les 10 lignes, donc il y a effectivement 28 lignes au total.
  • Si User1 essaie d'accéder à la 4e page, elle est devenue obsolète.

Quelle est la bonne façon de gérer ces situations? Y a-t-il un comportement attendu pour des situations comme celle-ci?

9
Rpj

Concernant le premier scénario: C'est une bonne pratique d'éviter les objets orphelins; mon conseil est de s'en tenir à 10 utilisateurs par page et d'afficher 11 utilisateurs à la 4ème page. Maintenant, si vous supprimez tous les éléments de la 4e page, supprimez le numéro de page de la pagination et ramenez l'utilisateur à la troisième page.

Concernant le deuxième scénario: Il sera préférable de mettre à jour la liste en temps réel via AJAX et supprimer les éléments supprimés à droite away (mise à jour immédiate de la pagination); cela vous aidera à éviter des situations Edge supplémentaires (par exemple, celle où User1 appellera delete sur l'élément qui a déjà été supprimé par User2).

En ce qui concerne la pagination elle-même: C'est une mauvaise idée de l'introduire comme un moyen de naviguer à travers une longue liste d'éléments. Vous pouvez avoir 2 scénarios:

Première - la liste est courte (disons moins de 100 éléments), ce qui signifie que vous pouvez l'afficher telle quelle, peut-être avec un moyen de la filtrer et de la trier; introduire la pagination dans cette situation ne fera que compliquer les choses pour l'utilisateur et entraînera une friction supplémentaire dans votre application.

Deuxième - la liste est longue (200+, 300+, 1000+) ce qui signifie que vous faites quelque chose de mal et que l'utilisateur ne devrait probablement pas voir (et dans la plupart des cas n'a pas besoin de voir) la liste entière. Dans ce cas, la pagination n'est pas non plus une solution miracle. De plus, en évitant la pagination, vous éviterez des situations comme celle que vous résolvez; la pagination n'introduit que le frottement des aiguilles pour vous (en vous forçant à penser à des situations Edge stupides) et à vos utilisateurs.

Voici plus de lecture si vous êtes intéressé à passer du temps à penser à la pagination: http://www.codinghorror.com/blog/2012/03/the-end-of-pagination.htmlhttp://www.slate.com/articles/technology/technology/2012/10/website_pagination_stories_should_load_into_a_single_page_every_time_.html

5
Ruslan

Cela dépend de la façon dont vous traitez les pages récemment vidées. L'affichez-vous comme une page vide pendant une courte durée avant de la supprimer complètement? Ou donnez-vous immédiatement une erreur 404?

Scénario 1:

Vous devez être redirigé vers la 4e page puisque vous avez supprimé la dernière seule entrée de la "dernière page" et vous devez être redirigé vers la nouvelle dernière page.

Vous pouvez affirmer que vous pouvez recharger la 5e page comme vide ("aucun contenu sur cette page") et une fois que l'utilisateur s'en éloigne, la 5e page ne peut plus être consultée.

Scénario 2:

Lorsque user2 supprime les 10 lignes de la 3e page, la 4e page devient essentiellement la 3e page. Lorsque l'utilisateur1 clique sur la page 4, il devrait obtenir le contenu n'est plus disponible et recharger la même page pour mettre à jour le contenu. Maintenant, vous pouvez essayer d'expliquer la situation ici "Le contenu de la page 3 a été supprimé et le contenu de la page 4 a été déplacé vers la page 3" si votre conception en a besoin.

Si vous utilisez ajax pour gérer le contenu, alors supprimez le lien vers la page 4 dès que l'utilisateur2 supprime la page et affichez une notification à l'utilisateur que le contenu qu'il voit en ce moment a été supprimé ou quelque chose.

3
rk.