Diskuze: Zacyklení

JavaScript JavaScript Zacyklení

Aktivity (1)
Avatar
John Ronald Reuel Tolkien:21. března 22:58

Zdravím,
Mám jednoduchý kód :

function pricti()
  {
 penize+=100;
    money.textContent="Peníze : " + penize + " Kč";
  }
  while (penize<10000)
  {
  setInterval(pricti,100);
   }

když se spustí funkce pricti(),
prohlížeč se zasekne...
Co je na kódu tedy špatně ?

 
Odpovědět 21. března 22:58
Avatar
DHPICO
Redaktor
Avatar
Odpovídá na John Ronald Reuel Tolkien
DHPICO:21. března 23:32

setInterval nastaví na spouštění funce každžch 0,1 sekundy, jelikož to je ve While cyklu, tak se to děje neuvěřitelně rychle, řekněmě třeba desettisíkrát než se projeví ono peníze += 100, takže tam máš každých 0,1 sekundy 10000x zvyšování hodnoty a nikdy to neukončíš, k tomu je potřeba zavolat clearInterval() s ID, které ti setInterval vrací, stačilo si přečíst:

https://www.w3schools.com/…interval.asp

Nahoru Odpovědět  +1 21. března 23:32
Požehnáni budíš oráj
Avatar
DHPICO
Redaktor
Avatar
Odpovídá na John Ronald Reuel Tolkien
DHPICO:21. března 23:36

pro tvůj původní účel vymaž while cyklus a nech tam jen jednou setInterval od kterého si uložíš ID do proměnné a v momentě, kdy bude penize === 10000, tak zavolej clearInterval s tím ID, mělo to tedy trval 10 sekund

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +2 21. března 23:36
Požehnáni budíš oráj
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.