[Cascavel-pm] monitoração de processamento
Ednardo Lobo
ednardo em lobosnet.com
Terça Setembro 30 13:48:26 CDT 2003
On Tue, Sep 30, 2003 at 03:00:23PM -0300, Alceu R. de Freitas Jr. wrote:
> Olá lista,
>
> Está dúvida é mais conceitual do que diretamente relacionada à Perl,
> mas lá vai...
>
> Imaginem que quero executar um processo mediante requisição HTTP com
> um CGI. Digamos que esse processamento demore, então não quero que o
> usuário pense que o servidor parou de responder: quero abrir uma
> janela usando a meta tag de refresh (no documento HTML), mostrando o
> progresso do processamento. O processo que roda no servidor pode gerar
> uma saída, com por exemplo 23/80 (23 processados de 80). Eu quero que,
> cada vez que o refresh da página ocorra, o CGI receba uma requisição e
> atualize o status da página. Até onde pensei, eu teria que usar
> cookies ou campos ocultos ou ainda colocar parâmetros na URL para
> o CGI identificar que o usuário em questão já tem um processo
> executando...
>
> O CGI no caso identifica a requisição (já "antiga"), checa o
> processamento rodando e sua apresenta sua saída.
>
> Queria fazer algo dinâmico, não ficar sobreescrevendo uma página em
> html no servidor.
>
> Eu apreciaria idéias, mesmo que implementem de forma diferente o que
> eu pensei aqui.
>
> Abraços,
>
Não sou um "expert" em protocolo HTTP e nem em JavaScript, mas
conheço bem o funcionamento do protocolo e um pouco de como o JavaScript
atua no navegador. Entretanto, tenho quase certeza que enquanto o
navegador aguarda o retorno de uma requisição nenhuma outro operação,
nem mesmo via JavaScript pode ser realizada no navegador. Então acho que
usar JavaScript para gerar um status de processamento não é a saída.
O servidor HTTP, entretanto, devolve a saída do "script" acionado
via CGI, se esse estiver com o seu dispositivo de <OUTPUT> no modo "não
bufferizado" ($| = 1), a medida que ela for sendo gerada. Você pode se
valer disso para retornar informações ao navegador a medida que o
"script" é processado. E essa saída poderá ser em formado 'text/plain',
'text/html' e até mesmo 'image/*'. Com isso, você permitir que o usuário
acompanhe o processamento do 'script' da maneira que achar mais
intuitiva, seja através de uma barra de progresso em texto ou gráfica.
Estou certo de que isso funciona, entretanto, não sei como o
navegador irá compor a barra de progresso, caso essa seja uma imagem.
Provavelmente, há outras maneiras de se fazer isso e gostaria de
conhecê-las. Se alguém tiver alguma outro sugestão ...
Alceu, se chegar a implementar a solução que propus, por favor, me
dê um feedback.
Boa sorte,
--
Ednardo Lobo
LOBO's NET - www.lobosnet.com
Mais detalhes sobre a lista de discussão Cascavel-pm