Führt window.requestAnimationFrame ein Threading durch? [Duplikat]

Sep 01 2020

Erstellt die window.requestAnimationFrameFunktion neue Threads, damit die Funktion, in der sie aufgerufen wird, und die Funktion selbst parallel ausgeführt werden? Da ich nicht verstehe, warum der folgende Code nicht zu einem Stapelüberlauf führt.

window.requestAnimationFrameAnrufe mainund mainAnrufe window.requestAnimationFrameund so weiter ...

w.rAF-> main-> w.rAF-> main-> w.rAF. . .

main.js

function main(currentTime){
    window.requestAnimationFrame(main);
    console.log(currentTime);
}

window.requestAnimationFrame(main);

index.html

<script src="main.js"></script>

Antworten

1 Snuffels11 Sep 01 2020 at 13:09

requestAnimationFrameWeist den Browser an, die Funktion auszuführen, bevor der nächste Frame gerendert wird. Wenn Sie requestAnimationFramemain erneut aufrufen , wird diese Funktion für den nächsten (nicht den aktuellen) Animationsrahmen in die Warteschlange gestellt.

In Javascript werden nur Worker eingefädelt.

requestAnimationFrameist eine spezielle Funktion zum Ausführen von Code an einem bestimmten Punkt in der Ereignisschleife. Ich fand dieses Video sehr hilfreich, um zu erklären, wie die Ereignisschleife funktioniert:https://www.youtube.com/watch?v=cCOL7MC4Pl0

1 Quentin Sep 01 2020 at 12:53

An übergebene Funktionen werden in requestAnimationFramedie Warteschlange gestellt und nicht mit einem Thread versehen.