powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Запуск долгоиграющего процесса.
4 сообщений из 4, страница 1 из 1
Запуск долгоиграющего процесса.
    #38614764
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже есть:
Пользователь на страничке видит форму с полями ввода и кнопку "submit".
По нажатию на "submit" запускается процедура проверки формы на синтаксическую правильность заполнения.
Если форма заполнена правильно запускается долгоиграющий процесс который в конце выдает пользователю большой файл на скачивание.
И в конце возвращаемся на страницу с формой.

В принципе у меня все это работает, но когда запускается долгоиграющий процесс пользователь видит пустой экран. Длительность этого пустого экрана может и до десятка минут доходить.... Со страницы с формой уже ушли, а файл еще не готов.
Спрашивается, как это облагородить? В идеале хотелось бы вообще со страницы не уходить а показывать какой-нибудь прогресс-бар.


Сразу говорю: никаких jQuery или Ajax в проекте нету и добавлять их ради одной плюшки не буду.
...
Рейтинг: 0 / 0
Запуск долгоиграющего процесса.
    #38614771
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый простой вариант - сабмиттить форму в скрытый (с нулевыми размерами) <iframe>
...
Рейтинг: 0 / 0
Запуск долгоиграющего процесса.
    #38614781
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlAjax в проекте нету и добавлять их ради одной плюшки не буду.
ахреннные трудности
...
Рейтинг: 0 / 0
Запуск долгоиграющего процесса.
    #38615924
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечсамый простой вариант - сабмиттить форму в скрытый (с нулевыми размерами) <iframe>Вот! Про iframe то я и забыл.

Но я тут подумал и сделал большой iframe. Изначально он показывает статичный текст "правила заполнения формы". А по Submit запускается скрипт выдающий multipart http response. Примерно так:
Код: perl
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
use CGI qw/:push -nph/;
print $cgi->multipart_init;
print $cgi->multipart_start(-type=>'text/html');
print "Preparing first section of the file";
print $cgi->multipart_end;
# .... some work
print $cgi->multipart_start(-type=>'text/html');
print "Preparing second section of the file";
print $cgi->multipart_end;
# .... some more work
print $cgi->multipart_start(-type=>'application/octet-stream', -'Content-Disposition'=>"attachment; filename=\"$fileName\"");
print $file_body
print $cgi->multipart_end;

print $cgi->multipart_start(-type=>'text/html');
print "All done!";
print $cgi->multipart_final;


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


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