J'ai une application avec connexion utilisateur. Lorsqu'un utilisateur se connecte pour la première fois, je lui montre un écran similaire à celui-ci pendant que le processus de connexion se termine:
L'accès de l'utilisateur doit être validé avant de pouvoir accéder à n'importe quelle partie de l'application, il est donc logique de bloquer son accès pendant que nous attendons.
Le problème est que, pour des raisons hors de mon contrôle, l'authentification peut prendre entre 3 secondes et 1 minute, en raison du fournisseur d'identité du backend. Donc, cette icône est à l'écran depuis longtemps.
Pendant les tests, j'ai remarqué que les utilisateurs commencent à sentir que quelque chose est cassé et veulent recharger/quitter la page après un peu d'attente lorsque l'authentification est lente.
Je souhaite compléter le texte "Connexion en cours ..." après que l'utilisateur a attendu pendant un certain temps en ajoutant "... cela peut prendre un certain temps. Veuillez ne pas vous éloigner ni recharger la page."
Combien de temps dois-je attendre pour présenter cette "assurance" supplémentaire à l'utilisateur? En outre, existe-t-il une meilleure façon de rassurer l'utilisateur sur le fait que tout fonctionne, en prenant juste un certain temps?
Remarque: J'ai vu cette question, qui répond à une question connexe de "combien de temps dois-je attendre pour montrer l'indicateur de chargement initial à un utilisateur? - pas "combien de temps dois-je attendre pour compléter l'indicateur de chargement initial?" - Temps de chargement et affichage du chargeur de page (quand montrer)
... l'authentification peut durer entre 3 secondes et 1 minute ...
Je recommanderais de commencer par votre animation de base, puis d'ajouter des commentaires supplémentaires au fil du temps.
Un jeu vidéo auquel je joue souvent, Rocket League, le fait lorsque vous commencez à rechercher un match en ligne. Il commence par le message simple (le premier dans la liste ci-dessous) puis ajoute des messages supplémentaires s'il commence à prendre un certain temps.
"Recherche de [mode de jeu] dans [région] ..."
"Recherche de joueurs proches de votre compétence ..."
"Recherche maintenant dans plus de régions ..."
"Astuce: vous pouvez rechercher d'autres modes de jeu pour trouver un match plus rapidement."
Il ne semble jamais que ces messages indiquent des changements réels dans les paramètres de recherche (je suis toujours presque toujours mis en correspondance dans la même région, contre un niveau de compétence similaire), mais cela me soulage effectivement que le système fonctionne toujours sur ma demande - il ne semble jamais inactif ou figé.
Dans votre cas, je vous recommande de commencer par votre animation de base. Après quelques secondes (environ 5), vous pouvez ajouter un message qui explique un peu plus, puis peut-être une minuterie indiquant le temps que la demande a pris pour que l'utilisateur puisse voir où ils en sont dans le temps de chargement typique <= 1 minute.
télécharger la source bmml - Wireframes créés avec Balsamiq Mockups
Pour ce que ça vaut, il y a ne étude intéressante à ce sujet par NNGroup qui fait beaucoup de recherches sur les utilisateurs pour son propre bien. Ils ont déterminé qu'il existe trois principaux seuils de temps d'attente dans une application:
- 0,1 seconde donne la sensation d'une réponse instantanée
- 1 seconde permet au flux de pensée de l'utilisateur d'être fluide
- 10 secondes retiennent l'attention de l'utilisateur ... Après 10 secondes, ils commencent à penser à autre chose, ce qui rend plus difficile de remettre leur cerveau sur la bonne voie une fois que l'ordinateur répond enfin
Comme le suggère maxathousand, vous pouvez améliorer le spinner d'attente en fournissant un message de progression (ou même une fausse barre de progression). Mon seul ajout à cette suggestion est d'utiliser "moins d'une minute" au lieu de "jusqu'à une minute". Cette suggestion provient du livre Designing and Engineering Time: The Psychology of Time Perception in Software, et vous pouvez trouver quelques conseils ici: http://www.stevenseow.com/papers/UI%20Timing%20Cheatsheet.pdf
Mais, le principal problème que vous devez résoudre est la raison pour laquelle l'authentification peut prendre 1 minute! Par exemple, une erreur utilisateur/mot de passe peut vous prendre plus de 2 minutes.
Je comprends que cela échappe à votre contrôle, mais il est parfois préférable de choisir le combat et de l'intensifier à l'ingénierie plutôt que d'essayer de le résoudre avec des astuces d'interface utilisateur. Quelques arguments qui peuvent vous aider dans cette discussion:
Même pour l'authentification fédérée, 1 minute est un temps d'attente considérable. Pour un temps d'attente aussi long, le goulot d'étranglement est généralement dans le réseau (toute E/S est de plusieurs ordres de grandeur supérieure à la CPU, et les temps d'attente des E/S réseau sont plus élevés que les E/S disque). Il y a donc un problème évident avec le chemin de communication entre votre système et le système d'authentification. Si le réseau n'est pas le problème, le processus d'authentification est inactif et fait autre chose (par exemple, attendre qu'un verrou soit libre). Ce problème doit être résolu au-delà de l'interface utilisateur de connexion, car cela va mordre votre équipe dans d'autres domaines.
Peu importe le type de progression que vous montrez; la perception du temps est relative à la tâche que vous effectuez. Par exemple, une attente d'une minute pour le téléchargement du fichier peut être attendue, mais pas pour la connexion. Les utilisateurs seront donc frustrés et cette frustration aura un impact négatif sur l'ensemble du système.
Vous mentionnez également que cela pourrait se produire la première fois. Une première configuration entraîne-t-elle le temps d'attente? Si tel est le cas, vous pouvez afficher quelque chose comme "Configuration de votre compte".
Ma réponse est un peu plus simple que les autres.
Je pense que votre réponse se trouve dans les tests que vous avez déjà faits.
Posez cette question:
Quel est le temps moyen après que les gens ont montré des signes d'hésitation lors de l'attente de la connexion?
Une fois que vous avez cette mesure, vous savez que vous devez donner "rassurer" quelques secondes avant ceci. Ou même quelques secondes avant le premier signe d'hésitation de l'un des participants.
Edit: Comme contre-argument pour avoir un indicateur de chargement, je voudrais partager cela bref point de Luke W sur le sujet du chargement écrans.
Fondamentalement, nous avons dit aux gens que nous étions lents parce que nous avons dit aux gens que nous étions lents ... C'est le pot classique regardé qui ne bout jamais.
Je pense que vous devriez afficher le message complet, y compris le message "Veuillez ne pas naviguer ou recharger la page". La vitesse de connexion/authentification est difficile à détecter avec précision et je recommande de montrer les répercussions d'essayer de recharger la page. Les messages de réconfort progressif sont corrects (montre à l'utilisateur que le système fonctionne toujours, etc.) mais je suggère de garder le message "Veuillez ne pas recharger la page" affiché à tout moment.
Ou vous pouvez utiliser une barre de progression au lieu d'un spinner car la barre peut montrer beaucoup plus longtemps qu'ils doivent attendre.