Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]while() nie czeka na setTimeout()
LewyM1
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.02.2011
Skąd: Sierpc

Ostrzeżenie: (0%)
-----


Witam, mam problem z dwoma funkcjami: while() i setTimeout(). Napisałem skrypt, który co jakiś czas wykonuje jakieś zadanie, w moim przypadku jest to wyświetlenie tekstu co 5 sekund. Niestety, while() nie czeka na wykonanie setTimeout(). Chciałem zastąpić while jakąś inną funkcją, ale właśnie nie wiem którą, bo dopiero poznaję ten język. (IMG:style_emoticons/default/smile.gif)
  1. <script type="text/javascript">
  2. function echo(x, y) {
  3. document.getElementById(y).innerHTML = x;
  4. }
  5. function powtarzaj(wykonaj, czas) {
  6. // czas podajemy w sekundach
  7. var i = 0;
  8. var id = 1;
  9. czas = czas/100;
  10. while (i <= id) {
  11. setTimeout(wykonaj, czas);
  12. i++;
  13. id++;
  14. }
  15. }
  16. </head>
  17. <body onload="powtarzaj(echo('Witam', 'wynik'), 5)">
  18. <p id="wynik"></p>
  19. </body>
  20. </html>

Pozdrawiam, Lewy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LewyM1
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.02.2011
Skąd: Sierpc

Ostrzeżenie: (0%)
-----


Ok, poprawione, ale teraz funkcja setInterval() działa jednorazowo. Sprawdziłem na przykładzie wyświetlania sekundy:
  1. <script type="text/javascript">
  2. function sekunda() {
  3. czas = new Date();
  4. sekunda = czas.getSeconds();
  5. return sekunda;
  6. }
  7. function echo(x, y) {
  8. document.getElementById(y).innerHTML = x;
  9. }
  10. function powtarzaj(wykonaj, czas) {
  11. // czas podajemy w sekundach
  12. czas = czas * 100;
  13. setInterval(wykonaj, czas);
  14. }
  15. </head>
  16. <body onload="powtarzaj(echo(sekunda(), 'wynik'), 1)">
  17. <p id="wynik"></p>
  18. </body>
  19. </html>


Ten post edytował LewyM1 21.04.2011, 12:54:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 12:42