> Менее трудный заключается в том, чтобы обернуть waiting и > форму в div-ы с разными классами (например waiting и form). > Перл генерирует для класса, div.waiting стиль видимый, а > для div.form - невидимый. А скрипт на событии onload > переключает это все наоборот.
Даже "waiting..." делать на старой странице (вышеописанным способом), т.е. при нажатии кнопки/ссылки появляется тот невидимый слой... Одновременно послан запрос на сервак, и как только он полностью обсчитает страницу - пусть ее и выводит...
Как реализовать фоновую работу скрипта на perl, что-бы во время его работы в окне експлорера клиента выводилась динамическая информация, например флешка или gif, а также текст ?
[Perl] Как это реализовать?14.10.03 15:24 Автор: whiletrue <Роман> Статус: Elderman
> Как реализовать фоновую работу скрипта на perl, что-бы во > время его работы в окне експлорера клиента выводилась > динамическая информация, например флешка или gif, а также > текст ?
Кажись, в общем случае незя. Но где-то здесь пробегало нечто о держании соединения незакрытым, т.е. получается бесконечно грузящаяся страница. Вопрос звучал в приложении к чату... поищи.
З.Ы. -> веб бильдинг
[Perl] Как это реализовать?15.10.03 10:28 Автор: Hux0r Статус: Незарегистрированный пользователь
Мне просто нужно сделать таким образом:
Пользователь заходит на страничку index.pl, в которой отрабатывается скрипт (поиск по базе данных и тому подобное), это занимает некоторое время (пару секунд). У пользователя на экране должен высвечиваться текст, например "Waiting..." После отработки скрипта, на странице должна появиться некая уже статическая форма.
[Perl] Может я чего и перемудрил, но все что мне придумалось сводится к следующему15.10.03 12:43 Автор: amirul <Serge> Статус: The Elderman
> Мне просто нужно сделать таким образом: > Пользователь заходит на страничку index.pl, в которой > отрабатывается скрипт (поиск по базе данных и тому > подобное), это занимает некоторое время (пару секунд). У > пользователя на экране должен высвечиваться текст, например > "Waiting..." После отработки скрипта, на странице должна > появиться некая уже статическая форма. Нужно в index.pl выдавать этот самый Waiting и вешать обработчик на onload - редирект на другую страницу. Причем не выходить из скрипта (не закрывать сокет) пока не завершится запрос.
А вот с запросом самое интересное. Для связи двух в отдельных CGI запросов нужно повесить отдельный процесс, который будет по запросу от перлового скрипта обращаться к базе и сигнализировать, что обращение закончено. А другому скрипту он будет отдавать полученные из базы данные. При этом все наборы данных идентифицируются случайным идентификатором сессии (который вставляется в редирект от первого запроса). Процесс хранит данные до тех пор, пока они не будут запрошены или не произойдет таймаут. Кроме того при такой схеме можно предусмотреть кеширование некоторых запросов и пр..
Это трудный, но более интересный вариант. Такую схему можно использовать для любого межскриптового взаимодействия.
Менее трудный заключается в том, чтобы обернуть waiting и форму в div-ы с разными классами (например waiting и form). Перл генерирует для класса, div.waiting стиль видимый, а для div.form - невидимый. А скрипт на событии onload переключает это все наоборот.
[Perl] Про простой вариант16.10.03 10:00 Автор: whiletrue <Роман> Статус: Elderman
> Менее трудный заключается в том, чтобы обернуть waiting и > форму в div-ы с разными классами (например waiting и form). > Перл генерирует для класса, div.waiting стиль видимый, а > для div.form - невидимый. А скрипт на событии onload > переключает это все наоборот.
Даже "waiting..." делать на старой странице (вышеописанным способом), т.е. при нажатии кнопки/ссылки появляется тот невидимый слой... Одновременно послан запрос на сервак, и как только он полностью обсчитает страницу - пусть ее и выводит...
[Perl] Ну да16.10.03 10:38 Автор: amirul <Serge> Статус: The Elderman
> Даже "waiting..." делать на старой странице (вышеописанным > способом), т.е. при нажатии кнопки/ссылки появляется тот > невидимый слой... Одновременно послан запрос на сервак, и > как только он полностью обсчитает страницу - пусть ее и > выводит... В простом варианте я это и имел в виду. Все на одной странице, только инициализируется: waiting - видно, форму - не видно, а после загрузки (то бишь когда запрос отработан) - наоборот.
> Нужно в index.pl выдавать этот самый Waiting и вешать обработчик на > onload - редирект на другую страницу. Причем не выходить из скрипта (не > закрывать сокет) пока не завершится запрос. > В простом варианте я это и имел в виду. Все на одной > странице, только инициализируется: waiting - видно, форму - > не видно, а после загрузки (то бишь когда запрос отработан) > - наоборот. Но возникает опять же проблема, в index.pl рисую "Waiting...", вешаю редирект, но редирект не срабатывает пока полностью не отработает цикл в скрипте.
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print '<BODY onLoad="./waiting.html">';
# ---------------- Основной цикл скрипта
for (...)
{....}
# -----------------
А потом происходит редирект...
---
Пробовал на php - та же проблема...
[Perl] БЕЗ редиректа17.10.03 12:31 Автор: amirul <Serge> Статус: The Elderman
> Но возникает опять же проблема, в index.pl рисую > "Waiting...", вешаю редирект, но редирект не срабатывает > пока полностью не отработает цикл в скрипте.
Форма загружается в невидимый слой. А после того, как полностью загрузится, делается видимой. А waiting соответственно скрывается
> > Нужно в index.pl выдавать этот самый Waiting и вешать > обработчик на > > onload - редирект на другую страницу. Причем не > выходить из скрипта (не > > закрывать сокет) пока не завершится запрос. > > В простом варианте я это и имел в виду. Все на одной > > странице, только инициализируется: waiting - видно, > форму - > > не видно, а после загрузки (то бишь когда запрос > отработан) > > - наоборот. > Но возникает опять же проблема, в index.pl рисую > "Waiting...", вешаю редирект, но редирект не срабатывает > пока полностью не отработает цикл в скрипте. >
> #!/usr/bin/perl
> print "Content-type: text/html\n\n";
> print '<BODY onLoad="./waiting.html">';
>
> # ---------------- Основной цикл скрипта
> for (...)
> {....}
> # -----------------
> А потом происходит редирект...
>
---
> Пробовал на php - та же проблема...
При нажатии на кнопку/ссылку жабаскриптой показывай (до этого невидимый) слой с waiting. Одновременно запрос послан на сервак. Как только отработает цикл - покажется новая полностью сформированная страница. Или я че-то не понял?
[Perl] но как...17.10.03 10:40 Автор: Hux0r Статус: Незарегистрированный пользователь
> При нажатии на кнопку/ссылку жабаскриптой показывай (до > этого невидимый) слой с waiting. Одновременно запрос послан > на сервак. Как только отработает цикл - покажется новая > полностью сформированная страница. Или я че-то не понял?
А как сделать слои (не)видимыми?
Идеально будет если Вы покажете это на простейшем скрипте-примере, если не затруднит.
> > При нажатии на кнопку/ссылку жабаскриптой показывай > (до > > этого невидимый) слой с waiting. Одновременно запрос > послан > > на сервак. Как только отработает цикл - покажется > новая > > полностью сформированная страница. Или я че-то не > понял? > > А как сделать слои (не)видимыми? > Идеально будет если Вы покажете это на простейшем > скрипте-примере, если не затруднит.