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