Strona 1 z 1

[PHP] problem ze SLEEP

: wt mar 20, 2007 12:58 pm
autor: SzamanGN
Witam,
Mam mały problem z tym skryptem:
[php]<?php
echo 'Tekst przed opóźnieniem.<BR>';
sleep(10);
echo 'Tekst po opóźnieniu.';
?>[/php]
Efekt tego skryptu jest nie taki jak się spodziewałem, tzn.:
po uruchomieniu tego skryptu nic się nie dzieje przez 10 sekund, a po tym czasie jest pokazany napis:
'Tekst przed opóźnieniem.
'Tekst po opóźnieniu.
Teraz mam pytanie:
Dlaczego nie wyświetlił się napis: "Tekst przed opóźnieniem.", a po opóźnieniu reszta?

Testowałem też dodanie flush() przed sleep(10), ale to nic nie zmieniło.

Re: [PHP] problem ze SLEEP

: wt mar 20, 2007 2:11 pm
autor: 123456
Dlaczego nie wyświetlił się napis: "Tekst przed opóźnieniem.", a po opóźnieniu reszta?
Bo ta funkcja działa w inny sposób. Wrzuca skrypt do pamięci i po określonym w argumencie funkcji czasie wykonuje skrypt dalej.

Nie można mieć od tak sobie otwartego połączenia przez 10 sekund. Serwery działałyby dużo wolniej i byłyby podatne na wiele ataków w tym czasie. Poza tym wykonywanie dużych skryptów i użycie tej funkcji pochłania dużo pamięci co wpływa niekorzystnie na wydajność serwera dla innych jego użytkowników.

Aby uzyskać to co Ty chcesz, musisz zrobić "sleep" od strony klienta. Klient czeka określony czas i znowu się łączy z serwerem.

Re: [PHP] problem ze SLEEP

: wt mar 20, 2007 8:51 pm
autor: SzamanGN
Dzięki za informację.

Temat zamknięty.

Re: [PHP] problem ze SLEEP

: śr mar 21, 2007 5:34 pm
autor: MirVanos
hmm
u mnie flush przed sleep'em pomaga - i wtedy taki skrypt działa ok