Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-98580
stranniks
2003-10-17 20:44
2003.10.30
И снова combobox


14-98846
Knight
2003-10-11 02:14
2003.10.30
Свои курсоры в своей компоненте...


3-98501
Данила
2003-10-09 13:18
2003.10.30
ProgressBar во время SQL запроса.


3-98428
D'oh
2003-10-11 02:38
2003.10.30
SQL


6-98775
oduvan
2003-09-03 10:10
2003.10.30
Как определить Content Type у файла




   Наверх