Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

как в CGI пока выполняется программа отобразить сообщение? ??   Найти похожие ветки 

 
NewD   (2003-10-20 13:22) [0]

У меня в CGI выплняются запросы к базе данных - все это может занимать разное время в зависимости от запроса, и пока он иднт мне нужно отобразить на странице что-то вроде
"подождите пожалуйста", а кога страница сформируется выдавать ее в RESPONCE. Как это сделать ?
Кто уже сталкивался с такой задачей ?
Спасибо.


 
Palladin ©   (2003-10-20 13:41) [1]

Рализовать в CGI приложении это не возможно. Ибо оно прекращает работу при окончании формирования ответа серверу.
Необходимо писать внешнее приложение, которое и будет заниматся запросами к базе и формировании результата. CGI приложению остается лишь управлять ей и выводить состояние, а так же и результат, клиенту.


 
NewD   (2003-10-20 15:38) [2]

Я кажется понял - написать консольное приложение которое из СGI запускать в виде отдельного процесса, но потом придется проверять выполнило ли оно свою функцию или нет, значит опять придется запускать СGI уже спроверкой. Это надо предусмотреть опять таки на странице.

А после формирования страницы как из внешнего приложения передать скажем текстовый поток, если внем сохранить сформированную страницу HTML обратно в (или сохранять его отдельным файлом ?).

Но если обращений много как узнать из СGI какое именно приложение выполняет нужный запрос.

Слишком сложно - есть какие-нибудь альтернативы ?


 
Palladin ©   (2003-10-20 15:50) [3]

нет альтернатив, и это несложно...

Конечно нужно предусмотреть на странице. Можно таким способом.
<meta http-equiv="Refresh" content="1; url=твой CGI">

Тебе не нужно формировать страницу на стороне внешнего приложения, нужны лишь данные, а созданием и оформлением в виде HTML пусть занимается CGI, ведь для этого он и создан.

Передать тесктовый поток, да и любой другой, можно разными способами, если спланировать исполнение и CGI и внешнего приложения на одной машине, то можно довольствоватся посылкой/приемомо сообщений (SendMessage), или использовать memory mapped file, в идеальном случае конечно я советовал бы написать сервер обработки и получения информации и в таком случае CGI приложение вполне могло бы общатся с этим сервером по протоколу TCP.

Множество обращений из CGI в сервер приложения (лучше обозначить это так), решается уже разработкой протокола общения между ними, собственно ничего сложного нет, нужно лишь для каждой сессии создавать уникальный идентификатор и в соответсвии с ним работать.


 
NewD   (2003-10-21 12:00) [4]

Вроде нашел как это сделать с ASP - выглядит так:создаешь ASP с которым связываешь страницу из которой передаются данные
в нем описываешь страницу типа "Подождите пожалуйста",
а потом прописываешь событие onload() и в нем делаешь передачу данных из главной формы.


 
Palladin ©   (2003-10-21 14:31) [5]

ASP это не CGI, у нее более ширкие возможности



Страницы: 1 вся ветка

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
3-98479
keymaster
2003-10-09 17:40
2003.10.30
Конвертация базы interbase


3-98473
Лана Розанова
2003-10-09 22:27
2003.10.30
Фильтрация


14-98869
Zacho
2003-09-30 00:05
2003.10.30
---|Ветка была без названия|---


8-98748
Ilg
2003-06-29 19:10
2003.10.30
Ограничение области рисования


14-98829
Undert
2003-10-11 22:40
2003.10.30
Это я