Christian Kruse: Wie kann man mit Event einer verarbeitende Funktion unterbrechen

Beitrag lesen

Hallo JürgenB,

  • Ich setze die Inhalte von rechenintensiven Schleifen in eine eigene Funktion, die sich dann über setTimeout nach kürzest möglicher Zeit selbst aufruft. Dadurch haben andere Prozesse, z.B. auch Eventhandler die Chance, zur Ausführung zu kommen. Primär mache ich das, um das „Einfrieren“ des Browsers bei rechenintensiven Scripten zu verhindern. Aber auch Statusausgaben und Programmabbruch sind so möglich.

Du meinst so etwas?

function foo(acc) {
  if(acc < 100) {
    window.setTimeout(foo, 0, acc+1);
  }
}
foo(0);

Falls ja: beachte, dass damit die Abarbeitung auch deutlich langsamer wird. Falls nein: was meinst du?

LG,
CK