Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | | |
[Perl] 17.10.03 09:15 Число просмотров: 1255
Автор: whiletrue <Роман> Статус: Elderman
|
> > Нужно в 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. Одновременно запрос послан на сервак. Как только отработает цикл - покажется новая полностью сформированная страница. Или я че-то не понял?
|
<programming>
|
[Perl] Как это реализовать? 13.10.03 17:40 [whiletrue, !mm]
Автор: Hux0r Статус: Незарегистрированный пользователь
|
Как реализовать фоновую работу скрипта на 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 - видно, форму - не видно, а после загрузки (то бишь когда запрос отработан) - наоборот.
|
| | | | | |
[Perl] 17.10.03 08:41
Автор: Hux0r Статус: Незарегистрированный пользователь
|
> Нужно в 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 соответственно скрывается
|
| | | | | | |
[Perl] 17.10.03 09:15
Автор: whiletrue <Роман> Статус: Elderman
|
> > Нужно в 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. Одновременно запрос послан > на сервак. Как только отработает цикл - покажется новая > полностью сформированная страница. Или я че-то не понял?
А как сделать слои (не)видимыми?
Идеально будет если Вы покажете это на простейшем скрипте-примере, если не затруднит.
|
| | | | | | | | |
[жабаскрипт] ну навроде этого 17.10.03 12:18
Автор: whiletrue <Роман> Статус: Elderman Отредактировано 17.10.03 12:18 Количество правок: 1
|
> > При нажатии на кнопку/ссылку жабаскриптой показывай > (до > > этого невидимый) слой с waiting. Одновременно запрос > послан > > на сервак. Как только отработает цикл - покажется > новая > > полностью сформированная страница. Или я че-то не > понял? > > А как сделать слои (не)видимыми? > Идеально будет если Вы покажете это на простейшем > скрипте-примере, если не затруднит.
<html>
<head>
<title>Слои</title>
<SCRIPT TYPE='text/javascript' LANGUAGE='JavaScript'>
<!--
function DoIt(){
l1.style.visibility=(l1.style.visibility=="hidden")?"visible":"hidden";
l2.style.visibility=(l2.style.visibility=="hidden")?"visible":"hidden";
}
//-->
</SCRIPT>
</head>
<body>
<a href=# onclick=DoIt()>Нажми меня</a>
<div id=l1 style=position:absolute;top:30;visibility:hidden>
Слой1
</div>
<div id=l2 style=position:absolute;top:30;visibility:visible>
Слой2
</div>
</body>
</html>
---
|
| | | | | | | | | |
Спасибо, буду разбираться 17.10.03 13:13
Автор: Hux0r Статус: Незарегистрированный пользователь
|
|
|
|