Развлекайте пользователя длительной задачей (WEB)

Каковы наилучшие способы занять пользователя/развлечь его, когда он ждет завершения длительной задачи?

Мысли:

  • Показать случайные подсказки или справочные сообщения
  • Progressbar (но если это длительная задача, это не очень удобно, потому что она не меняется очень часто)

Или у кого-нибудь есть примеры того, как другие люди решают эту проблему в своем веб-приложении?


person jeroenv    schedule 20.01.2009    source источник


Ответы (11)


Ты не думаешь, что он предпочел бы свернуть твое окно и заняться какой-нибудь другой работой? Или пойти выпить кофе? Или поболтать с его приятелями?

Почему бы тебе просто не сказать ему, что это займет какое-то время, и пусть он сам решит?

Кажется, все, что вы будете делать, это создавать больше работы для себя и драгоценного процессора пользователя :-).

person paxdiablo    schedule 20.01.2009
comment
Если после завершения процесса требуется действие пользователя, просто отправьте электронное письмо. - person aivarsak; 20.01.2009

Я бы сосредоточился на максимально точном подсчете времени, которое займет задача, а затем сообщил бы пользователю, чтобы он мог решить, что делать во время ее выполнения.

person gkrogers    schedule 20.01.2009

  1. Информировать пользователя: дать оценку продолжительности Показать прогресс (возможно, если ваш пользователь технарь, показать ему/ей, что на самом деле делается)

  2. Уведомить пользователя: убедитесь, что пользователь знает, что он будет уведомлен после завершения задачи или если она потребует его внимания (об ошибках и т. д.). Это позволит им с комфортом заниматься другими делами, зная, что процесс идет.

  3. Фоновая обработка: По возможности постарайтесь сделать процесс ненавязчивым. То есть попробуйте запустить его в фоновом режиме, пока пользователь продолжает использовать ваш сайт, и после его завершения он просто уведомляет их (через всплывающее окно AJAX или какое-либо уведомление). Это лучше всего сделать, если процесс связан с учетной записью, а не с сеансом. Таким образом, если пользователь отправляет запрос на запуск процесса и соединение теряется (браузер закрывается и т. д.), процесс завершается и готов к возврату пользователя. Если процесс связан с сеансом, это будет сложно, поскольку он будет завершен вместе с сеансом.

  4. Полезные сообщения: если вам просто нужно заставить пользователя ждать, попробуйте использовать время для отображения полезных сообщений (подсказок, рекламы и т. д.)

person Ahmed    schedule 20.01.2009

Самое главное — дать пользователю точную оценку времени, которое займет процесс.

Как вы сказали, давать советы — это классическая, но всегда полезная информация.

Однако, в зависимости от типа разрабатываемого приложения, вы можете добавить небольшие игры (такие как судоку или палач...)!

Другая идея состоит в том, чтобы отображать некоторые новости (например, вы можете использовать плагин RSS, связанный с веб-сайтами, связанными с вашим бизнесом).

person Romain Linsolas    schedule 20.01.2009

В связи с вашим вопросом, вы можете взглянуть на:

https://stackoverflow.com/questions/182112/funny-loading-statements-to-keep-users-amused

person Aron Rotteveel    schedule 20.01.2009

Точная оценка для веб-приложений затруднена из-за множества потенциальных факторов задержки. По грубым догадкам, если обычному пользователю придется ждать ..

  • .. несколько долей секунды, ничего не делать и обвинять других (систему пользователя, IE, Windows, интернет-провайдера и т. д.), когда иногда это занимает больше времени
  • .. несколько секунд, загрузите небольшой, но красивый GIF с несколькими кадрами (будет ли это забавным, профессиональным, серьезным или раздражающим, зависит от вас)
  • .. более нескольких секунд, но менее минуты, отображать форму с объяснением, в идеале с индикатором выполнения, если вы можете справиться
  • .. задержка, которую приходится исчислять в минутах, то приложение не подходит для современных масс, привыкших к типичной скорости Web 2.0. Включите несколько хороших игр (например, эту). вернуть их терпение, но это не гарантировано
person Heartless Angel    schedule 20.01.2009

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

person Colin Pickard    schedule 20.01.2009

Для длинных задач, если это возможно, даже не требуйте от них держать окно открытым или свернутым. Вместо этого поставьте запрошенное действие в очередь и сообщите, что его выполнение займет некоторое время. Вы даже можете предложить возможность отправить электронное письмо, когда закончите, как говорит @Colin Pickard.

Этого подхода придерживается Flickr, когда вы делаете массовые перетеги своих фотографий, и это довольно удобно. (Хотя должен сказать, что последняя перетасовка у меня так и не сработала :)

person Daniel Daranas    schedule 20.01.2009
comment
Я согласен. Возьмем, к примеру, генерацию отчетов — то, что может занять огромное количество времени и ресурсов процессора, если вы позволите. Поставьте его в очередь и предложите внести его на их счет или в почтовый ящик, когда закончите. Safari Books онлайн делает это при преобразовании глав в PDF для загрузки. - person Chris K; 20.01.2009

Показать красиво лица уродливый людей, которым нравится пользоваться продуктом, и помимо них текст, объясняющий, почему эта версия лучше, чем любая предыдущая.

person shoosh    schedule 20.01.2009

Делайте это в фоновом режиме, если это возможно. Скажите ему, когда вы оцениваете работу, которая должна быть сделана, а затем уведомите их каким-нибудь разумным способом. Я бы делал индикаторы выполнения и/или что-то «забавное», только если пользователю не имеет смысла делать что-то еще (с вашим приложением) во время выполнения задания.

person Dave Vogt    schedule 20.01.2009

Лифтовая музыка?

person Crashworks    schedule 20.01.2009