2010-05-10 5 views
5

Quelle est la durée maximale, selon vous, acceptable pour un script web (PHP par exemple) à exécuter avant qu'il ne devienne ennuyeux pour l'utilisateur (en moyenne)? J'ai toujours pensé que si l'utilisateur devait attendre plus d'une seconde pour que la page se charge (ceci bien sûr après que les images et les css aient été mis en cache ... cette règle s'applique uniquement aux requêtes suivantes), ils commenceraient à être ennuyés.Combien de temps est-il trop long pour l'exécution d'un script?

Répondre

13

42 secondes.

En fait, la vérité est que cela dépend de l'âge et des attentes de l'utilisateur que vous recherchez. Mes parents, par exemple, pourraient être beaucoup plus tolérants d'une attente prolongée, mais ils sont aussi beaucoup plus enclins à appuyer sur le bouton encore et encore, comme ils le feraient pour un passage pour piétons ou un bouton d'ascenseur.

Cela dit, la vraie réponse est, combien de temps est-il trop long pour l'utilisateur de se passer de commentaires? Même en lançant un logo en forme de sablier rapide ou une barre de progression, cela peut faire toute la différence dans le monde pour un utilisateur. Cela dit, si le service que vous fournissez doit être en temps réel et agir comme une application de bureau, trop long est fondamentalement "tout ce qui est perceptible".

Alors, cop-out répondre ... cela dépend. Cela dit, même une attente "trop ​​longue" peut être surmontée par une conception correcte de l'interface utilisateur et une interaction avec le client.

+2

+1 pour avis. Les choses compliquées prendront toujours longtemps (sinon, elles ne seraient pas compliquées), mais ce qui frustre l'utilisateur est le manque de feedback (la sensation que mon ordinateur ne "fait rien") – Agos

+0

Bonne réponse ici! – sepehr

+0

+1 pour le (pas si) citation cachée – Eineki

1

Bien default limit pour une exécution de script PHP est de 30 secondes. Si vous demandez juste du point de vue des utilisateurs, alors la règle générale serait plus le mieux ...

0

Tout ce qui prend plus de quelques secondes de temps de traitement devrait être traitée différemment, en voici quelques exemples

  • Cache son côté serveur de sortie
  • exécuter une tâche Cron qui effectue le traitement
  • lancer un processus de faux avec PHP en utilisant system()
0

Ma règle générale:

de traitement Conserver côté serveur sous un second dans le scénario moyen de cas et certainement moins de 30 ans dans le pire des cas.

0

Je dirais que quelques secondes avant que vous devriez appeler (PHP) ob_flush() et au moins envoyer quelque chose au client. Sinon, l'effet de profondeur prendra le dessus et l'utilisateur se rafraîchira à plusieurs reprises. En ce qui concerne le chargement total de la page, cela n'a pas d'importance tant que vous gardez l'utilisateur en ligne. Une barre de progression vous aidera à cela.

0

La stratégie éprouvée consiste toujours à gérer les attentes. Ne faites pas un utilisateur devinez vous ou votre application. Si, par vos benchmarks, le temps de traitement moyen d'une page particulière va au-delà, disons un seuil de 6 secondes, dites-le avant que l'utilisateur clique sur un bouton. C'est comme attendre un site Web pour vous envoyer un courriel de confirmation, sans savoir quand il arrivera, car il n'a jamais été mentionné que cela pourrait prendre plusieurs heures en raison d'un trafic hors du contrôle du site.

10

Jacob Nielsen a fait des research on this.

  • 0,1 seconde est sur la limite d'avoir à l'utilisateur l'impression que le système réagit instantanément, ce qui signifie qu'aucune rétroaction spéciale est nécessaire, sauf pour afficher le résultat . 1,0 seconde est environ la limite pour le flux de pensée de l'utilisateur pour rester ininterrompu, même si l'utilisateur remarquera le retard. Normalement, aucune rétroaction spéciale n'est nécessaire pendant les retards de plus de 0,1 mais de moins de 1,0 seconde, mais l'utilisateur perd la sensation de fonctionner directement sur les données.
  • 10 secondes est environ la limite pour garder l'attention de l'utilisateur concentré sur le dialogue. Pour des retards plus longs, les utilisateurs voudront effectuer d'autres tâches en attendant la fin de l'ordinateur, de sorte qu'ils devraient recevoir des commentaires indiquant quand l'ordinateur s'attend à ce que l'ordinateur soit terminé. La rétroaction pendant le délai est particulièrement importante si le temps de réponse est susceptible d'être très variable, puisque les utilisateurs ne sauront alors pas à quoi s'attendre.

Pour servir comme source d'inspiration, vous pouvez voir comment la communauté NetBeans interpret these values:

  1. 0,1 seconde - navigation et modifier les actions (extension par exemple le dossier, coller dans l'éditeur, la navigation dans l'éditeur), et la peinture de toutes les barres de menu doit se terminer dans cette limite
  2. 1,0 seconde - toutes les ouvertures de fenêtre et de dialogue doivent se terminer sa limite
  3. 10 secondes - toutes les actions qui sont terminées plus tard qu'après 1 seconde et prennent généralement moins de 10 secondes doivent montrer une sorte d'indication d'occupation (par ex. un curseur en forme de sablier ou un texte "veuillez patienter ..."; toutes les actions plus long que cette limite sont tenus de fournir la barre de progression en utilisant les API Progress
+0

+1 pour les déclarations d'origine. –

0

De mon expérience, vous devez donner à l'utilisateur au moins un certain préavis si quelque chose va de prendre plus de quelques secondes. Peut-être utiliser AJAX avec une animation de fantaisie et remarquer comme "Cela va prendre un certain temps".

Si vous ne pouvez pas utiliser AJAX et que votre script PHP prend, par exemple, plus de 10 secondes à charger, essayez de trouver un moyen de l'optimiser.

Questions connexes