Главная страница
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.034 c
1-98679
Ev1972
2003-10-21 13:32
2003.10.30
StretchDraw: как копировать часть рисунка?


1-98626
Delph
2003-10-21 16:23
2003.10.30
PopupMenu


9-98425
Fennek^Red
2003-04-24 15:43
2003.10.30
InvalidateRect


1-98725
Dmitriy
2003-10-20 20:08
2003.10.30
Показ картинки в Hint e


3-98508
SashaZ
2003-10-10 19:36
2003.10.30
вставка записи в табл Oracle