Qual è il tempo massimo che ritieni sia accettabile per uno script Web (ad esempio PHP) da eseguire prima che diventi un fastidio per l'utente (in media)? Ho sempre pensato che se l'utente deve attendere più di 1 secondo per caricare la pagina (questo ovviamente dopo che le immagini e il css sono stati salvati nella cache ... questa regola si applica solo alle richieste successive) inizierebbero a infastidirsi.Quanto tempo impiega troppo uno script?
risposta
42 secondi.
In realtà, la verità è che si riduce all'età e alle aspettative dell'utente a cui si sta adattando. I miei genitori, ad esempio, potrebbero essere molto più tolleranti di un'attesa prolungata, ma sono anche molto più propensi a premere il pulsante ancora e ancora, come faranno con un pulsante di attraversamento o ascensore.
Detto questo, la vera risposta è, quanto tempo è troppo lungo per l'utente per andare senza feedback? Anche l'apertura di un veloce logo a forma di clessidra o barra di avanzamento può fare la differenza nel mondo per un utente. Detto questo, se il servizio che si sta fornendo dovrebbe essere in tempo reale e agire come un'app desktop, troppo lungo è fondamentalmente "qualsiasi cosa percepibile".
Quindi, risposta di uscita ... dipende. Detto questo, anche un'attesa "troppo lunga" può essere superata mediante una corretta progettazione dell'interfaccia utente e l'interazione con il cliente.
Well default limit per un'esecuzione di script PHP è di 30 secondi. Se si sta solo chiedendo dal punto di vista degli utenti, allora la regola generale sarebbe il più veloce è il migliore ...
Tutto ciò che richiede più di un paio di secondi di tempo di processo deve essere gestito in modo diverso, ecco alcuni esempi
- cache lato server di uscita
- Eseguire un job cron che fa il trattamento
- Spawn un processo finto con PHP usando
system()
Date un'occhiata a questo link:
http://www.simple-talk.com/dotnet/.net-tools/the-cost-of-poor-website-performance/
poi basta decidere il livello di frustrazione gli utenti possono raggiungere.
mia regola:
Mantieni elaborazione lato server meno di un secondo nello scenario medio caso e sicuramente under 30 nel caso peggiore.
Direi un paio di secondi prima di chiamare (PHP) ob_flush()
e inviare almeno QUALCOSA al client. Altrimenti l'effetto dell'ascensore prenderà il sopravvento e l'utente si aggiornerà ripetutamente. Per quanto riguarda il caricamento totale della pagina, non importa se si mantiene l'utente inserito. Una barra di avanzamento aiuterà in questo.
La strategia collaudata è sempre quella di gestire le aspettative. Non fare in modo che un utente indovini te o la tua applicazione. Se, in base ai benchmark, il tempo di elaborazione medio per una determinata pagina andrà oltre, ad esempio una soglia di 6 secondi, dillo prima che l'utente faccia clic su un pulsante. È come aspettare che un sito Web ti invii una e-mail di conferma, non sapendo quando arriverà, perché non è mai stato detto che potrebbero essere necessarie diverse ore a causa del traffico al di fuori del controllo del sito.
Jacob Nielsen ha fatto qualche research on this.
- 0,1 seconda è circa il limite per avere sentire l'utente che il sistema reagisce istantaneamente, il che significa che nessun feedback speciale è necessario salvo per visualizzare il risultato .
- 1,0 secondi è circa il limite per il flusso di pensiero dell'utente di rimanere ininterrotto, anche se l'utente noterà il ritardo. Normalmente, non è necessario alcun feedback speciale durante i ritardi superiori a 0,1 ma inferiori a 1,0 secondi, ma l'utente perde la sensazione di operare direttamente sui dati.
- 10 secondi rappresenta il limite per mantenere l'attenzione dell'utente focalizzata sul dialogo. Per ritardi più lunghi, gli utenti vorranno eseguire altri compiti in attesa che il computer finisca, quindi dovrebbero ricevere un feedback che indica quando il computer si aspetta di essere eseguito. Il feedback durante il ritardo è particolarmente importante se è probabile che il tempo di risposta sia altamente variabile, poiché gli utenti non sapranno cosa aspettarsi.
Per servire come fonte di ispirazione, si potrebbe guardare a come la comunità NetBeans interpret these values:
- 0,1 seconda - navigazione e modificare le azioni (ad esempio la cartella di espansione, incolla nel redattore, navigazione nell'editor) e la pittura di tutte le barre dei menu deve terminare entro questo limite
- 1,0 secondo - tutte le finestre e le finestre di dialogo devono terminare entro t il suo limite
- 10 secondi - tutte le azioni che sono terminate più tardi dopo 1 secondo e in genere richiedono meno di 10 secondi devono mostrare una sorta di indicazione di occupato (ad es. cursore a forma di clessidra o testo "per favore aspetta ..."); tutte le azioni che prendono più di questo limite sono tenuti a fornire barra di avanzamento utilizzando Progress API
+1 per dichiarazioni originarie. –
Dalla mia esperienza, si dovrebbe dare all'utente almeno un po 'di preavviso se qualcosa è gonna prendere più di pochi secondi. Forse usa AJAX con qualche animazione di fantasia e nota come "Ci vorrà un po '".
Se non è possibile utilizzare AJAX e lo script PHP sta prendendo, ad esempio, più di 10 secondi per caricare, provare a pensare a un modo per ottimizzarlo.
+1 per feedback. Le cose complicate richiederanno sempre molto tempo (se no, non sarebbero complicate), ma ciò che frustra l'utente è la mancanza di feedback (la sensazione che il mio computer "non fa nulla") – Agos
Buona risposta qui! – sepehr
+1 per il (non così) citazione nascosta – Eineki