A funkciók set-outout és setinterval
setTimeout és setInterval
Mindkét függvény végrehajtja a végrehajtani kívánt kód első sorát, vagy a függvényt, amelyet az első argumentummal kíván kezdeni. A második argumentum egy milliszekundum késleltetést határoz meg. Mindkét funkciót a létrehozott időzítő azonosítójához adja vissza.
Ne feledje, hogy a kódsor csak egy idézőjelben lévő karakterlánc, nem csak kód. Nem ajánlatos átadni a karakterláncot. Futtatható a globális tartományban, és a szkriptek általában helyi területen vannak, ezért a setTimeout / setInterval átvezetett kódja nem fér hozzá a parancsfájl adatához és funkcióihoz. Igen, és kényelmetlen a kód beírása egy vonalon belül, még nem is kiemelt.
A setTimeout és a setInterval funkciók működését a clearTimeout és clearInterval funkciók törölhetik, a letiltott időzítő azonosítóját pedig az utóbbiakhoz továbbítva.
Egyszerű példa: ha egy elem fölé mutat, akkor két másodpercen belül meg kell jeleníteni az üzenetet. Ha azonban ez alatt a két másodperc alatt az egérmutatót eltávolítottuk az elemről, akkor az üzenet nem jelenik meg.
Ha egy érvénytelen azonosítót átadnak a clearTimeout / clearInterval törléséhez, semmi sem fog történni. Ezért a fenti példában nem tudja ellenőrizni, hogy az időzítő már működött-e, és mi van az időzítőben.
Ehelyett a setTimeout / setInterval funkció "jelet készít", hogy egy kódot kell futtatni annyi ezredmásodpercben, és a szkript továbbra is úgy működik, ahogy kellene.
Attól a ténytől, hogy az egy menetes nyelv követi a további következményeket - a kódot nem szigorúan meghatározott időintervallumon keresztül hajtják végre, hanem legkorábban ezen az intervallumon keresztül. Ha valamilyen időpontban valamilyen kódot hajt végre, a tolmács meg fogja várni, hogy befejeződjön, utána csak az időzítő kódját futtatja.
A Firefox-ban a setTimeout és a setInterval függvények egyetlen számparamétert adnak át visszahívási funkcióiknak, ami megegyezik a függvényhívás késleltetett milliszekundumainak számával.
Sajnos ez a funkció nem létezik más böngészőkben.