Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
John Ronald Reuel Tolkien:21.3.2018 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.3.2018 22:58
Avatar
DHPICO
Tvůrce
Avatar
Odpovídá na John Ronald Reuel Tolkien
DHPICO:21.3.2018 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
21.3.2018 23:32
Požehnáni budíš oráj
Avatar
DHPICO
Tvůrce
Avatar
Odpovídá na John Ronald Reuel Tolkien
DHPICO:21.3.2018 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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
21.3.2018 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.