Сколько времени занимает выполнение сценария?

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

9 ответов


42 секунды.

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

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

Итак, ответ cop-out... это зависит от. Тем не менее, даже "слишком долгое" ожидание может быть преодолено правильным дизайном пользовательского интерфейса и взаимодействием с клиентами.


Джейкоб Нильсен сделал исследование по этому вопросу.

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

чтобы служить вдохновением, вы можете посмотреть, как сообщество NetBeans интерпретировать эти значения:

  1. 0,1 секунды - действия навигации и редактирования (например, расширение папки, вставка в Редакторе, навигация в редакторе) и рисование всех строк меню должны завершиться в этом предел
  2. 1,0 секунды - все окна и диалоговые окна должны заканчиваться в пределах этого предела
  3. 10 секунд - все действия, которые завершаются позже, чем через 1 секунду и обычно занимают менее 10 секунд, должны показывать какую-то индикацию занятости (например, курсор часового стекла или "Пожалуйста, подождите..."text); Все действия, занимающие больше этого предела, необходимы для обеспечения индикатора выполнения с использованием API прогресса

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


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

  • кэшировать его выходную сторону сервера
  • запустите задание Cron, которое выполняет обработку
  • Spawn искусственный процесс с PHP с помощью system()

взгляните на эту ссылку:

http://www.simple-talk.com/dotnet/.net-tools/the-cost-of-poor-website-performance/

тогда просто решите, какой уровень разочарования могут достичь ваши пользователи.


мое правило:

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


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


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


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

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