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
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.
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 ...
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()
Jetez un oeil à ce lien:
http://www.simple-talk.com/dotnet/.net-tools/the-cost-of-poor-website-performance/
puis juste décider le niveau de frustration vos utilisateurs peuvent atteindre.
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.
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.
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.
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:
- 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
- 1,0 seconde - toutes les ouvertures de fenêtre et de dialogue doivent se terminer sa limite
- 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
+1 pour les déclarations d'origine. –
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.
- 1. Combien de temps est un morceau de $ string .... trop long ... php
- 2. Combien de temps pour vous connecter à une application et combien est trop?
- 3. C# TabPage.Controls.Add trop long
- 4. php memory combien c'est trop
- 5. clé FULLTEXT trop long
- 6. Combien de NSTimers est trop?
- 7. Combien de temps est un morceau de $ chaîne ... trop longtemps ... javascript P2
- 8. Le script jQuery prend trop de temps dans IE
- 9. Bloat Feature - combien est trop?
- 10. Flex: temps combien de temps HTTPService faut pour charger?
- 11. django template "nom de fichier trop long"
- 12. Combien de classes est trop? Rails STI
- 13. php long running script
- 14. initialiseur-chaîne pour tableau de caractères est trop long
- 15. Combien de balises div sont trop?
- 16. mysql - combien de colonnes est trop?
- 17. requête MySql trop long - django sur webfaction
- 18. Combien de temps Tomcat doit-il arrêter?
- 19. Combien de temps faut-il pour apprendre le script Action 3 dans Adobe Flash?
- 20. Combien de temps devrais-je me préparer pour SCJP?
- 21. Java: Arrêt d'un thread trop long?
- 22. bignum trop grand pour convertir en erreur `long »
- 23. Mod-Rewrite pour les grands sites ... combien coûte trop?
- 24. C#: DBConnection.Open() timeout est trop long
- 25. convertir 'int' en 'long' ou accéder à un tableau trop long avec 'long'
- 26. Combien de temps met CreateThread à exécuter?
- 27. Combien de temps dure AudioServicesPlaySystemSound (kSystemSoundID_Vibrate)?
- 28. Combien de temps faut-il pour créer une colonne d'identité?
- 29. Combien de temps faut-il pour construire un éditeur vertical?
- 30. Drupal: Combien de temps faut-il pour reconstruire des autorisations
+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
Bonne réponse ici! – sepehr
+1 pour le (pas si) citation cachée – Eineki