Hallo blockiert ziehen Ich habe eine folgende FunktionLeinwand Bild von Code darunter
render = function (ctx, img, W, H) {
ctx.drawImage(img, 0, 0, W, H, 0, 0, W, H);
}
ich von einer anderen Funktion
renderImage(ctx, img, width, height);
for(var i = 0; i < 10000000 ; i++) {
// en expensive for loop
}
Das Problem der Funktion nenne ich das Bild bin vor nicht geladen im Browser, bis die for-Schleife die Ausführung beendet, jedoch ist nicht klar, warum das Bild warten soll, bis die for-Schleife beendet ist. Jeder kann helfen? Wie kann ich es laden, ohne auf die Ausführung der Schleife zu warten?
'context.drawImage' sollte sein 'ctx.drawImage' – grateful
Wenn Sie" * nicht laden * "sagen, meinen Sie" nicht rendern "richtig? Es ist, weil so Javascript funktioniert. Es ist single-threaded und wenn Sie eine for-Schleife wie diese ausführen, wird alles blockiert, bis der Ausführungsprozess abgeschlossen ist. Teilen Sie Ihre Schleife in mehrere kleinere auf, rufen Sie sie mit einem Timeout oder innerhalb eines requestAnimationFrame auf. – Kaiido