2010-05-10 4 views
5

Какое максимальное время, по вашему мнению, приемлемо для веб-скрипта (например, PHP), прежде чем оно станет раздражать пользователя (в среднем)? Я всегда думал, что если пользователь должен ждать более 1 секунды для загрузки страницы (это, конечно, после того, как изображения и css были кэшированы .. это правило действительно применяется только для последующих запросов), они начнут раздражаться.Как долго длится скрипт?

ответ

13

42 секунды.

На самом деле, правда, это больше подходит к возрасту и ожиданиям пользователя, которого вы обслуживаете. Мои родители, например, могут быть гораздо более терпимыми к длительному ожиданию, но также гораздо чаще нажимают кнопку снова и снова, как будто они будут на пешеходной или лифтовой кнопке.

Это говорит, что реальный ответ: сколько времени слишком долго для пользователя без обратной связи? Даже взлёт быстрый логотип песочных часов или индикатор выполнения, может сделать для вас все различия в мире. Тем не менее, если услуга, которую вы предоставляете, должна быть в реальном времени и действовать как настольное приложение, слишком долго в основном «ничего заметного».

Итак, ответ об отказе ... это зависит. Тем не менее, даже «слишком долгое» ожидание может быть преодолено благодаря правильному дизайну пользовательского интерфейса и взаимодействию с клиентами.

+2

+1 для обратной связи. Сложные вещи всегда будут занимать много времени (если нет, они не будут сложными), но то, что разочаровывает пользователя, - это отсутствие обратной связи (ощущение, что мой компьютер «ничего не делает») – Agos

+0

Хороший ответ здесь! – sepehr

+0

+1 для (не так) скрытая цитата – Eineki

1

Ну default limit для выполнения скрипта PHP составляет 30 секунд. Если вы просто просят с точки зрения пользователей, то правило будет быстрее, тем лучше ...

0

Все, что занимает больше, чем за несколько секунд времени процесса должны обрабатываться по-разному, вот несколько примеров

  • Cache его стороне вывода сервера
  • Выполнить задание Cron, что делает процессинговый
  • нерест лже процесса с PHP с использованием system()
0

Мое правило:

Keep стороне сервера обработки под второй в среднем сценарии случае и, безусловно, при 30-х годов в самом худшем случае.

0

Я бы сказал пару секунд, прежде чем вы должны позвонить (PHP) ob_flush() и хотя бы отправить SOMETHING клиенту. В противном случае эффект лифта возьмет верх, и пользователь будет обновляться повторно. Что касается общей загрузки страницы, это не имеет значения, если вы сохраняете сообщение пользователя. Этот индикатор поможет.

0

Испытанная и настоящая стратегия всегда управляет ожиданиями. Не заставляйте пользователя догадываться, что вы или ваше приложение. Если по вашим показателям среднее время обработки для определенной страницы будет превышать, скажем, 6-секундный порог, скажем так, прежде чем пользователь нажмет кнопку. Это похоже на то, что веб-сайт отправит вам электронное письмо с подтверждением, не зная, когда он прибудет, потому что никогда не упоминалось, что это может занять несколько часов из-за трафика, выходящего за пределы сайта.

10

Jacob Nielsen сделали некоторые research on this.

  • 0,1 вторых о пределе за то, что пользователь чувствовать, что система реагирует мгновенно, а это означает, что никакая специальная обратная связь не требуется, кроме как для отображения результата ,
  • 1.0 секунды - это предел для потока мысли пользователя, чтобы он оставался бесперебойным, даже если пользователь заметит задержку. Как правило, при задержках более 0,1, но менее 1,0 секунды, никакой специальной обратной связи не требуется, но пользователь действительно теряет чувство непосредственного использования данных.
  • 10 секунд - о пределе, на котором внимание пользователя сосредоточено на диалоге. Для более длительных задержек пользователи захотят выполнить другие задачи в ожидании завершения работы компьютера, поэтому им следует дать обратную связь, указывающую, когда компьютер ожидает выполнения. Обратная связь во время задержки особенно важна, если время ответа, вероятно, будет сильно изменяться, так как пользователи тогда не будут знать, чего ожидать.

Чтобы служить в качестве вдохновения, вы можете взглянуть на то, как сообщество NetBeans interpret these values:

  1. 0,1 второй - навигации и редактировать действия (например, папка расширения, вставить в редактор, навигация в редакторе), а окраска всех строк меню должна заканчиваться в этом пределе
  2. 1.0 секунд - все окна и диалоги должны быть открыты в пределах t его предел
  3. 10 секунд - все действия, которые заканчиваются позже, чем через 1 секунду и обычно занимают менее 10 секунд, должны показывать какую-то индикацию занятости (например, часовой стеклянный курсор или текст «пожалуйста, подождите ...»); все действия, принимая больше, чем этот предел требуется обеспечить прогресс бар с помощью Progress APIs
+0

+1 для утвержденных источников. –

0

Из моего опыта, вы должны дать пользователю хоть какое-то уведомление, если что-то собирается взять больше, чем несколько секунд. Возможно, использовать AJAX с какой-то причудливой анимацией и заметить, что «Это займет какое-то время».

Если вы не можете использовать AJAX, и ваш PHP-скрипт занимает, например, более 10 секунд для загрузки, попробуйте подумать о способе его оптимизации.

Смежные вопросы