Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

как в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
4-98927
wicked
2003-08-25 20:44
2003.10.30
о таймерах....


1-98726
AviS1982
2003-10-17 14:39
2003.10.30
Как управлять одной программой с помощью другой


14-98789
tOester
2003-10-09 14:27
2003.10.30
Умная программа


3-98481
ИМХО
2003-10-09 16:45
2003.10.30
CSV


1-98595
jack128
2003-10-13 19:21
2003.10.30
Проблема с фреймами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский