![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Mam spory problem. Zrobiłem sobie pętle while. Generuje ona linie teksty. Chciałbym ją trochę opóźnić tz. pętelka wykona się raz poczeka x sekund i następnie znowu wykona. I tak w kółko. Czy jest to możliwe? Jeśli tak to jak? Z góry dziękuje za pomoc. PS. Szczęśliwego Nowego Roku. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
sleep()
Tylko nie wiem, co oznacza "w kółko", bo jak użytkownik wyłączy przeglądarkę, to pętla też skończy swoje. -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mój Drogi opóźnia. Tylko gdy uruchomie skrypt to wszystkie opóźnienia są generowane. A dopiero potem wyswietlają się dane z pętli.
Ja chciałybym inaczej Żeby każde powtórzenie wyświetliło tekst i poczekało x sekund. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Z tego co się orientuję, to niestety w PHP to nie jest realne.
-------------------- ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli w php nie. To w jakim języku? javascript?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak, javascript. Tam masz konstrukcje window.setTimeout i window.setInterval, odsyłam do wyszukiwarki po więcej informacji.
-------------------- ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Tak, javascript. Tam masz konstrukcje window.setTimeout i window.setInterval, odsyłam do wyszukiwarki po więcej informacji. Ja również odsyłam po więcej informacji Ciebie do manuala PHP. Kod w PHP:
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Przykro mi, ale to tak nie działa. Wyświetla się wszystko naraz po 10x sekund, gdzie x to argument sleep().
A faktycznie jedynym sposobem na to, żeby strona wyswietlała się dynamicznie, jest używanie JavaScriptu. Ten post edytował Hazel 28.12.2007, 20:33:30 -------------------- ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Przykro mi to Ci mówić, ale działa. Lecz jeżeli używasz IE to musisz wysłać 256 bajtów wcześniej abyś zobaczył efekt. A więcej masz w dokumentacji:
Cytat Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser. Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client. Even the browser may buffer its input before displaying it. Netscape, for example, buffers text until it receives an end-of-line or the beginning of a tag, and it won't render tables until the </table> tag of the outermost table is seen. Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page. Mam nagrać Tobie film i pokazać localhosta? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem w czym leży problem, ale pod żadną przeglądarką nie działa tak jak powinno. Filmu nagrywać nie musisz, wierzę Ci, ale niestety u mnie nie działa nigdzie. Sprawdzałem pod FF, Operą, IE, Safari, Flock i wiecej mi się nie chciało. Po prostu u mnie to nie działa. Ani pod PHP 5, ani pod PHP 4.
-------------------- ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Tak więc oboje mamy rację. Chodzi o to, że PHP wysyła dane, lecz przeglądarka ich nie wyrzuca, lub też drugi przypadek kiedy na serwerze w php.ini nie masz ustawione implicit_flush = on, output_buffering = off. Wtedy powinieneś widzieć zamierzony efekt.
Ten post edytował Liko 28.12.2007, 20:45:36 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No już chciałem powiedzieć, że mnie przekonałeś, bo to faktycznie byłoby miłe i burzyłoby parę moich teorii na temat php, i umożliwiało znaczące działania bez js, więc byłem gotowy przyznac Ci rację z uśmiechem, ale niestety nawet po zmianie ustawień implicit_flush i output_buffering nic specjalnego się nie dzieje. A że PHP wysyła dane, to jest fakt, tak właśnie działa sleep(). Ale chodzi bardziej o efekt niż fakt...
-------------------- ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Konkluzja ostateczna: za dużo zachodu, aby działało to u wszystkich. Także zwracam rację Hazelowi i przepraszam za porywczość. Jednak pomysł z wykorzystaniem JS znacznie prostszy i wygodniejszy w zastosowaniu.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A możecie pomóć? Jestem zielony w js.
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Coś takiego, nie wiem, czy dokładnie o to chodzi. Jeśli nie, to daj kawałek kodu i będziemy radzić ![]() Ten post edytował Hazel 28.12.2007, 21:52:50 -------------------- ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Podałem rozwiązanie. Stosuj setInterval, nie baw się w timeouty wewnątrz pętli, bo nic dobrego z tego nie wyjdzie. Daj cały kod, jeśli czegoś nie rozumiesz.
-------------------- ![]() |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ale Twoje rozwiązanie nie działa. Wyświetli 1,2,3 i potem powtarza dodatkowy text. A ja chciałbym żeby wyświetliło 1 + ewentualny dodatkowy text wtedy poczekał i wyświetlił 2.
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dokładnie rozumiem, ale jak chcesz to możesz zmienić ten kod żeby nie wyświetlał samych liczb, tylko coś jeszcze...
-------------------- ![]() |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 1 Dołączył: 21.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie.
Mam w pętli php zmienną. I chciałbym tak. Wyświetliło zmienną { Czyli wykonało Poczekało { 1 raz pętle. Wyświetliło zmienną { Czyli wykonało Poczekało { 2 raz pętle. ........................ Tylko w formacie zmienna <br /> zmienna </br> Żeby nie podmnieniało tylko jedno pod drugim. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:04 |