Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DreamWeaver

ajax + php

Recommended Posts

Falaí pessoal .. hoje eu tive uma duvidazinha , dei uma googlada aki e num achei nada então vo pergunta pra vcs

 

Seguinte :

 

Eu tenho o codigo assim:

 

<?php

for($i = 0; $i <= 5; $i++)
	   {
			  echo "Teste $i";
			  sleep(10);
		}
?>

A página demora 50 segundos para abrir , e os "echos" aparecem todos de uma vez .. é possivel aparecer um , depois outro e assim por diante , em tempo real?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Pela Ajuda ae , mas n tive sucesso .... ele continua exibindo tudo de uma vez.... queria que fosse tipo um unbuffered no mysqli ..

 

Mas obrigado ae , continuo tentando

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz tempo mas vou ajudar.., amigo, flush é complexo porque depende não só do buffer do php (esse ele limpa sim! e funciona) mas também depende do buffer do navegador. O IE por exemplo, faz 1kb de buffer, então por mais que você descarregue várias vezes o que tiver no buffer do seu php pra ele, ele só vai exibir na tela quando completar 1k. O netscape já faz buffer até encontrar um fechamento de tag html (qualquer uma), no caso de ter uma table aberta por exemplo, ele não vai fazer o flush enquanto não aparecer o fechamento da tag, o safary se eu não me engano tem 255 b de buffer. O esquema é o seguinte, completar com espaços em branco, até encher o buffer do navegador pra ele estourar o buffer e mostrar na tela. Também é bom colocar um <br /> e um \n no final, para garantir a portabilidade. É meio que gambiarra, mas deve funcionar. Até no core do Zend Framework é essa abordagem que é utilizada, e funciona muito bem. Eu to trabalhando numa alteração no zend framework, para que ele consiga fazer esse flush mesmo com ajax. Mas tah bem complicado.

<?php
for($i=0;$i<=5;$i++){
	echo str_pad('Teste' . $i . '<br />', 1024, ' ', STR_PAD_RIGHT) . "\n";
	flush();
	ob_flush(); 
	sleep(10);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.