Lassen Sie uns sagen, ich habe diese Javascript-Funktion:CSS Animationen abgewürgt, wenn JavaScript-Funktion läuft
function pauseComp(ms) {
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < ms);
}
und eine css3 Animation (zum Beispiel <i class="icon-spinner icon-spin"></i>
aus dem neuen font-awesome 3). Wenn ich die JavaScript-Funktion oben ausführe, stoppt es den Dreher, während die Funktion läuft. Siehe, worüber ich spreche here. Grundsätzlich stoppt Javascript CSS-Animationen, und ich frage mich, warum, oder wenn jemand anderes dies bemerkt hat/eine Workaround gefunden. Ich habe versucht, es in eine setTimeout (Fn, 0), wo Fn ist der lange Prozess, aber dann realisiert, warum das auch nicht funktioniert (js ist nicht Multithread). Hat das jemand gesehen?
Update: Interessanterweise sieht es in Safari nicht so aus, obwohl die Interaktion mit der Browser-Oberfläche immer noch beeinträchtigt ist.
Sie müssen Ihren "long running code" in Blöcke aufteilen, damit alles andere weiterlaufen kann. –
Richtig, obwohl mir bewusst ist, dass dies das Problem beheben würde, ist das keine brauchbare Lösung für die Funktionen, auf die ich das anwenden möchte. Die Funktionen sind nicht in kleinere Stücke zerbrechlich. Ich überprüfe wirklich, ob jemand eine Lösung für das genaue oben genannte Problem hat, das ebenfalls nicht aufgelöst werden kann. –