|
|
|
Диалоговое окно загрузки файла и callback при завершении запроса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте форумчане. Стоит задача, при клике на кнопку инициировать загрузку csv файла браузером. Начну с серверной стороны: по ссылке site.com/export отдается файл с правильными заголовками, который инициирует загрузку. С этим проблем не возникало. Но, это произойдет, если просто перейти по этой ссылке. А что сделать, если нужно без перезагрузок страницы, открытий новых вкладок, просто предложить пользователю загрузить? Натолкнулся на вариант: - создаем скрытый iframe на странице - создаем форму в качестве target для которой устанавливаем iframe И такой вариант прекрасно работает. Набросок кода: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Так как количество данных большое, время экспорта занимает 2-10 сек. И вот появился вариант, показывать обычный лоадер на старте экспорта и скрывать при окончании, чтобы пользователь не сидел в недоумении, что происходит. С этим пунктом, возникли проблемы. А как собственно отследить, что submit отправленный на iframe успешно завершен? Если бы использовался ajax запрос, то здесь все понятно, есть callback, а что с этим делать не могу понять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 00:27 |
|
||
|
Диалоговое окно загрузки файла и callback при завершении запроса
|
|||
|---|---|---|---|
|
#18+
1) отправить ajax запрос на формирование документа, 2) получить в ответ через N секунд уникальную ссылку на скачивание, 3) вставить полученную ссылку во фрейм, 4) ??? 5) PROFIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 00:39 |
|
||
|
Диалоговое окно загрузки файла и callback при завершении запроса
|
|||
|---|---|---|---|
|
#18+
зы1) отправить ajax запрос на формирование документа, 2) получить в ответ через N секунд уникальную ссылку на скачивание, 3) вставить полученную ссылку во фрейм, 4) ??? 5) PROFIT Спасибо большое, отличный вариант! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 00:59 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=124&tid=1448048]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 354ms |

| 0 / 0 |
