• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MROverclock

Visualizar ao mesmo tempo que vai executando

15 mensagens neste tópico

Boas pessoal,

eu estou a fazer uma porção de código que faz umas querys a uma base de dados etc...

O que eu pretendo é que no fim de cada query e logo após todos os dados terem sido processados que seja logo imprimido no ecrã do utilizador enquanto o resto das querys  continuam a ser processadas e imprimidas uma a uma.

isso é possível com o PHP?

Um abraço

PS - Não fiz search sobre este assunto porque não sei palavras chave usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para isso mais vale usares a command line interface do php.

E como é que isso se faz?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Parece que há aqui um mal entendido  :-[

eu vou explicar melhor:

Eu tenho um ficheiro  pagina.php que quando é acedido pelo utilizador através da internet, mostra vários gráficos que demoram o seu tempo a ser processados. em vez de estar 10segundos a espera que a página seja apresentada toda de uma vez, queria que ele após processar o 1º gráfico que o envie logo para o utilizador e assim sucessivamente gráfico a gráfico até ao ultimo que é quando a página aparecerá completa.

Se não uso o PHP uso o quê e como? (dêm-me só umas dicas que depois pesquiso sobre isso)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mmmm... pois isso isso é um pouco esquisito. Uma aplicação web não ser escrita de forma a empregar grandes quantidades de processamento enquanto se serve uma página. Nem sei como é que o apache ( ou outro servidor ) lida com isso. Tipo... quanto tempo ou quantos dados espera até realmente enviar a página, e se a divide por pacotes, etc...

Talvez alguem saiba bem como lidar com este tipo de situações, pessoalmete acho que nunca vais conseguir grande controlo do teu output dentro da mesma página.

Uma forma de contornar isto é fazeres um script para actualizar os graficos que corre quando tu quiseres. Podes corre-lo através o cron, ou com umapágina a que só tu tens acesso, ou de mais umas quantas formas.

Nesse caso o visitante so precisa de aceder a uma pagina estática e os teus problemas acabam.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo eu já vi uma cena parecida já não me lembro aonde ao fazer a instalação dum forum...(ja nem sei qual)

Aquili aparecia:

Creating database: Finished

Passado uns segundos

Creating database: Finished

Executng queries: Finished

E assim sucessivamente ... Mas n faço a minima ideia de como fazer..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo eu já vi uma cena parecida já não me lembro aonde ao fazer a instalação dum forum...(ja nem sei qual)

Aquili aparecia:

Creating database: Finished

Passado uns segundos

Creating database: Finished

Executng queries: Finished

E assim sucessivamente ... Mas n faço a minima ideia de como fazer..

Das duas uma, ou isso faz refresh da pagina quando acaba determinada tarefa, ou faz um pedido xmlhttprequest e actualiza determinado elemento do html. Esta ultima técnica é o que se chama AJAX.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se fizeres:

<?php
echo "ALOO!";
?>
bewm.
<?php
sleep(2);
?>
bawm.
<?php
echo "BAI!";
?>

Ele não faz o efeito pretendido?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL não conhecia o sleep xD

...

mas n funciona lol

vai atrasar o scrip logo no principio nao interrompe a meio mesmo que separes por diferentes <? ?>..

axo eu..(tive a testar e foi o que me pareceu)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se fizeres:

<?php
echo "ALOO!";
?>
bewm.
<?php
sleep(2);
?>
bawm.
<?php
echo "BAI!";
?>

Ele não faz o efeito pretendido?

DJ thyrax, isso não funciona porque o apache só envia a página depois de esta estar processada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se fizeres:

<?php
echo "ALOO!";
?>
bewm.
<?php
sleep(2);
?>
bawm.
<?php
echo "BAI!";
?>

Ele não faz o efeito pretendido?

DJ thyrax, isso não funciona porque o apache só envia a página depois de esta estar processada.

Podia ser por bloco, mas não sabia. Que eu me lembre, o cPanel faz o pretendido, e é codado em Perl.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo eu já vi uma cena parecida já não me lembro aonde ao fazer a instalação dum forum...(ja nem sei qual)

Aquili aparecia:

Creating database: Finished

Passado uns segundos

Creating database: Finished

Executng queries: Finished

E assim sucessivamente ... Mas n faço a minima ideia de como fazer..

Das duas uma, ou isso faz refresh da pagina quando acaba determinada tarefa, ou faz um pedido xmlhttprequest e actualiza determinado elemento do html. Esta ultima técnica é o que se chama AJAX.

O que eu pretendo é exactamente o que o joxnas disse. Vou tentar procurar por esse xmlhttprequeste e por ajax!

tnks.

Um abraço

P.S. - O script em php é todo executado do inicio ao fim só depois é feito o output! A cena do sleep() já eu tinha testado :(  

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como o djthyrax falou do caso do cpanel, lembrei-me aqui de uma coisa.

Eventualmente se o php estiver a correr como CGI em vez de módulo do apache é capaz de funcionar, mas não tens assim grandes vantagens nisso, ou podes não ter escolha em como interpretar o teu php.

Se alguem estiver mais por dentro como funciona um módulo apache e o CGI afixe aqui para clarificar o pessoal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora