Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Диалоговое окно загрузки файла и callback при завершении запроса / 3 сообщений из 3, страница 1 из 1
02.08.2013, 00:27
    #38352282
jivamusic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диалоговое окно загрузки файла и callback при завершении запроса
Здравствуйте форумчане.
Стоит задача, при клике на кнопку инициировать загрузку csv файла браузером.

Начну с серверной стороны: по ссылке site.com/export отдается файл с правильными заголовками, который инициирует загрузку.
С этим проблем не возникало. Но, это произойдет, если просто перейти по этой ссылке. А что сделать, если нужно без перезагрузок страницы, открытий новых вкладок, просто предложить пользователю загрузить?
Натолкнулся на вариант:
- создаем скрытый iframe на странице
- создаем форму в качестве target для которой устанавливаем iframe

И такой вариант прекрасно работает. Набросок кода:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var iframe = $('<iframe></iframe>')
   .attr( 'name', 'iframe-export-container' )
   .css( 'display', 'none' )
   .appendTo( $('body') );

var form = $('<form></form>').attr({
   'target' : 'iframe-export-container',
   'method' : 'POST'
})
form.appendTo( $('body') );
form.submit();



Так как количество данных большое, время экспорта занимает 2-10 сек. И вот появился вариант, показывать обычный лоадер на старте экспорта и скрывать при окончании, чтобы пользователь не сидел в недоумении, что происходит.
С этим пунктом, возникли проблемы. А как собственно отследить, что submit отправленный на iframe успешно завершен?
Если бы использовался ajax запрос, то здесь все понятно, есть callback, а что с этим делать не могу понять.
...
Рейтинг: 0 / 0
02.08.2013, 00:39
    #38352293
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диалоговое окно загрузки файла и callback при завершении запроса
1) отправить ajax запрос на формирование документа,
2) получить в ответ через N секунд уникальную ссылку на скачивание,
3) вставить полученную ссылку во фрейм,
4) ???
5) PROFIT
...
Рейтинг: 0 / 0
02.08.2013, 00:59
    #38352305
jivamusic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Диалоговое окно загрузки файла и callback при завершении запроса
зы1) отправить ajax запрос на формирование документа,
2) получить в ответ через N секунд уникальную ссылку на скачивание,
3) вставить полученную ссылку во фрейм,
4) ???
5) PROFIT

Спасибо большое, отличный вариант!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Диалоговое окно загрузки файла и callback при завершении запроса / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]