Hey
korzystam z Flush() w PHP by pokazywać kolejno zawartość strony...
w FireFoxie i Operze działa
w IE nie :p
da rade to zrobić?
Hey
korzystam z Flush() w PHP by pokazywać kolejno zawartość strony...
w FireFoxie i Operze działa
w IE nie :p
da rade to zrobić?
przecież php nie zależy od przeglądarki :|
Może IE czeka, aż dostanie całą stronę, zanim ją wyświetli?
Spróbuj dać sleep(1); przed flush();, czasem pomaga.
musisz najpierw wyslac 1024 bajty danych zeby IE zaczal wyswietlac dane na stronie
<?php
$s = '';
$i = 1024;
while ($i--) $s .= '#';
echo '<!-- ' . $s . ' -->';
while (++$i < 10) {
echo $i . '<br>';
flush();
sleep(1);
}
?>
okej dizeki przetestuje zaraz sleepa i 1024 ...
To co napisałeś działa
ale gdy ja korzystam w pętli dodatkowo z CURL-a includuje inne pliki i robie zapytania SQLa to juz nie działa... widać na pasku IE że pobiera dane, lecz ich nie pokazuje , dopiero po zatrzymaniu strony
zrobięłem taką funkcje za kadym przejsciem przez pętle:
function flu()
{
$s = '';
$i = 1024;
while ($i--) $s .= '#';
echo '';
flush();
sleep(3);
}
lecz nie wyświetla kolejnych wierszy mojej tabeli
bo IE wyświetla tabelkę dopiero po całym jej pobraniu i na to już nic nie poradzisz, chyba że zrezygnujesz z tabelki, nie musisz za każdym razem przed flush dawać 1024 bajtów, tylko na początku strony
działa w IE też ale powinno sie też dawać ob_flush():
<?
for ($x=0;$x<10;$x++)
{
sleep(1);
echo $x."<br />\n";
ob_flush();
flush();
}
?>