Raportowanie w trakcie wykonwyania skryptu

0

Cześć wszystkim...
Mam takie pytanie borykam się z takim problemem i nie wiem jak go rozwiązać ;) mianowicie mam program który wykonuje coś tam w pętli

for ($i=0; $i <$ile; $i++)

{ jakaś tam instrukcja

echo ('Wynik: '.$i);
sleep (3);
}

I teraz pytanie jak zrobić i czy w ogóle można aby po każdej skończonej pętli program przestał działać na chwilę i wyświetlał

echo ('Wynik: '.$i);

Bo tak jak teraz program będzie działał do momentu aż nie dojdzie do 0 i dopiero wyświetli wynik... a ja bym chciał zrobić by odświeżał stronę i wyświetlał wynik po każdej zakończonej pętli...

dodanie znacznika <code class="php"> - Furious Programming

0

Jeżeli nie uruchamiasz z poziomu konsoli, nie da się w ten sposób.
Mógłbyś zrobić to na zasadzie zapamiętywania ostatniej liczby np.w ciasteczkach i wysyłaniu <meta http-equiv="Refresh" content="3; url=adres" />

0

Ja bym zrobił tak że jest jakiś URL który odpowiada aktualnym wynikiem a ty na stronce ajaxem pobierasz co jakiś czas ten status.

0

inną metodą jest takie trochę głupie coś:

// wypluwasz tutaj całą stronę, bez zamknięcia `</html>`

ob_flush();
for ($i=0; $i <$ile; $i++) {
  // jakaś tam instrukcja
  $zmienna = jakas_funkcja_ktora_cos_robi();
  echo ("<script>aktualizuj($zmienna);</script>");
  echo "<!--";for ($j=0; $j<=1024; $j++) { echo "."; } echo "-->"; 
  ob_flush();
  sleep (3);
}

echo '</html>';

coś takiego sprawi, że stronka się załaduje, ale bez dolnej części, NIE ODPALĄ SIĘ bodajże żadne skrypty javascript (bo DOM nie będzie zbudowane do końca), ale jeżeli zdefiniujesz javascriptową funkcję aktualizuj bodajże tylko w tagu <script> bez src [ale nie wiem, może i pobierze zewnętrzny] wcześniej - to ona się już będzie uruchamiać (i będzie mogła modyfikować zawartość elementów na stronie, tj. jakiegoś diva z postępem czy co tam chcesz). 1024 znaki komentarza są wypluwane, bo większość przeglądarek nie będzie trawić krótkich danych pchniętych na siłę do przeglądarki i potrzebuje przynajmniej 1KB kodu, więc jej go podajemy.

takie rozwiązanie nie jest idealne, ale to po prostu jedna z opcji.
rozwiązanie podpatrzone ze skryptu RapidLeech (czy tam RapidLeecher)

1 użytkowników online, w tym zalogowanych: 0, gości: 1