Я использую jQuery.fileЗагрузить плагин John Culviner (большой). Он имеет обратные вызовы, когда загрузка завершена, но мой файл занимает около 30 секунд для генерации (много обработки в конце концов).jquery.fileЗагрузить: сообщить пользователю о прогрессе
Я хочу сообщить пользователю о текущем ходе.
В качестве прототипа, я пытаюсь это:
1) (до инициирования загрузки файла) - неоднократно опрашивать URL каждый второй ($ .get (...)). Он возвращает% complete и обновляет div на странице (0% в этой точке).
2) Инициируйте сценарий fileDownload (в этот момент проверяется, что переменные на стороне сервера, которые 1), начинают обновляться, например. 2% завершено .... 10% завершено .... и т. Д. И т. Д.
3) В идеале, в то время как файл строится, мои вызовы ajax в 1) все еще одновременно выполняют опрос (и обновляют div), так что пользователь начинает видеть некоторый прогресс.
4) Загрузка завершена. Я могу скрыть «прогресс div» в этот момент, так как он покажет 100%.
NB, прогресс, конечно же, будет заменен индикатором прогресса.
Проблема состоит в том, что, как только начинается загрузка файла, ajax вызывает 1) запускает очередность и фактически не выполняется до 4)!
Я думаю, что плагин fileDownload использует iframe, который я бы не подумал бы блокировать вызовы ajax на моей главной странице, но это похоже.
Надеюсь, что имеет смысл. Благодарен за любые советы о том, как с этим бороться.
У меня такая же проблема с этим компонентом и ASP.NET MVC5. Я украсил контроллер, содержащий мое действие «progress» с этим SessionStateAttribute, но это вызов моего действия прогресса все еще заблокирован до завершения загрузки файла. Нужно ли мне украшать оба контроллера тем же атрибутом? Это может быть сложно. –