Как развлечь пользователя, когда загрузка страницы занимает много времени? - PullRequest
1 голос
/ 10 ноября 2011

В связи с этим вопросом:

Кажется, что Chrome не запускает javascript xmlhttprequests после отправки формы, но FF и IE делают

Мне нужен способобновить страницу после того, как я нажму на кнопку submit, ожидая ответа от сервера (ответ может занять 10 секунд) с информацией от сервера (как в процентах)

В IE и Firefox я могу делать запросы xhr, покав ожидании загрузки страницы.В Chrome это не работает, Chrome не запускает запрос xhr.Я никогда не получаю хита на веб-сервере.

Как все остальные делают это?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Никогда не заставляйте своего пользователя сидеть без дела в течение 10 секунд для подачи одной страницы.Они будут ненавидеть вас, ваш сервер будет ненавидеть вас, и могут возникнуть всевозможные проблемы.Вместо этого:

  1. Отправьте запрос и поместите его в очередь.
  2. Возвращает ответ пользователю, указывающий, что запрос поставлен в очередь.
  3. Обновление пользователя по мере обработки очереди.Либо в режиме реального времени с использованием кометного решения, либо просто опрашивайте его каждые 2-3 минуты, если он не чувствителен ко времени.
0 голосов
/ 10 ноября 2011

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

Время проходит быстрее, когда вам интересно что-то почитать, поэтому я загружал RSS-каналы (в стиле ajaxy) с разных новостных сайтов, пока веб-приложение опрашивало очередь для завершения процесса в фоновом режиме. Когда опрос показал, что он завершен, я просто открыл окно подтверждения js, спрашивая пользователя, хотят ли они оставить окно новостей открытым или вернуться к своему обычному рабочему процессу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...