Ich verwende die innerHTML
-Eigenschaft, um eine DIV
dynamisch zu ändern, um über einen Prozess zu berichten, der ein paar Sekunden braucht, um zu beenden. Das Problem ist, dass in Firefox die Seite nicht wirklich neu gerendert wird, um diese Änderung widerzuspiegeln, bis das Skript beendet ist. Dies macht die App träge. Gibt es eine Möglichkeit sicherzustellen, dass Änderungen am HTML-Code sofort angezeigt werden, auch wenn mehr Skripts ausgeführt werden?
Der Browser ist single-threaded. Während das Skript läuft, kann der Browser nichts anderes tun. Wenn Sie etwas wie eine Fortschrittsanzeige machen möchten, müssen Sie setTimeout()
oder setInterval()
, und zerlege deine Aufgabe in kleinere Stücke, die in einem Intervall laufen. Dadurch bleiben Lücken zwischen den Skriptläufen bestehen, die dem Browser die Kontrolle zurückgeben, wo der Browser neu zeichnen kann.
Versuchen Sie, Ihr Skript regelmäßig zu unterbrechen. Sie sollten
verwenden können %Vor%liefert die notwendige Unterbrechung ohne lange Verzögerung, wobei nextFunction die Funktion ist, die mit Ihrer langwierigen Verarbeitung fortfährt.
Tags und Links javascript html css dom