Существует ли способ сказать если, когда загрузка закончилась? Таким образом, мы позволяем пользователям загружать отчет в формате PDF. Требуется приблизительно 3 - 5 секунд, чтобы начать загружать и в это время, от щелчка до конца загрузки, показывать значок состояния ожидания так, чтобы пользователь не нажимал многократно.
Спасибо! Eric
Хорошо, вот что мы сделали.
Когда пользователь щелкает ссылку для загрузки PDF-файла, мы показываем значок состояния ожидания и отправляем асинхронный запрос серверу приложения, чтобы начать сборку PDF-файла. Когда процесс завершен, он возвращает URL-адрес PDF-файла. После этого мы удаляем изображение состояния ожидания и устанавливаем location.href = url. Думаю, это лучшее решение.
Спасибо всем за идеи / предложения / код!
Вы можете просто отключить ссылку на 5 секунд после нажатия и отобразить скрытый значок ожидания.
Это нетривиально. Если вы используете сценарий для отправки файла PDF, вы можете установить где-нибудь флаг, чтобы указать, что сценарий завершил отправку данных. Но это просто означает, что сценарий готов. Это не означает, что байты куда-то были отправлены. Они могли застрять в исходящей очереди веб-сервера, ожидая, пока свободный слот действительно будет отправлен по сети.
Лучшее решение, которое я видел, - это открыть новое окно, чтобы начать загрузку, и вставить в него обычную анимацию / текст «пожалуйста, подождите, я думаю ...». Чтобы пользователь не нажимал исходную кнопку загрузки несколько раз (и не открывал несколько окон загрузки), вы можете добавить немного JavaScript, чтобы отключить кнопку на короткое время.
Можно ли использовать JavaScript для отключения кнопки после ее нажатия? ( http://www.codetoad.com/javascript/enable_disable_form_element.asp )