JavaScript ist toll. Ja. Und ist heute aus der Webentwicklung nicht mehr wegzudenken. Allerdings hat Javascript einen kleinen Schwachpunkt: Es gibt keine Nebenläufigkeit. JavaScript wird linear ausgeführt*.
Will man beispielsweise länger dauernde Operationen in JavaScript realisieren, gerät man schnell an den Punkt, dass der Browser nicht reagiert, blockiert, träge wird. Eine Lösung dies zu umgehen gibt es: Die Algorithmen dahingehend ändern, nur kleine Teile des Problems auf einmal zu berechnen.
Beispiel: Alle Zahlen von 0 bis 100000 zusammenzählen.
var sum = 0;
for (var i = 0; i < 1000000; i++) {
sum += i;
}
Diese Schleife blockiert und das Script reagiert träge bzw. gar nicht mehr. Damit man nun das Rad nicht neu erfinden muss, hat Thomas Peri eine sehr interessante JavaScript-Bibliothek geschrieben: Clumpy.
Clumpy versucht eine Pseudonebenläufigkeit in JavaScript zu realisieren, und das auf eine sehr elegante Art.
Beispiel: Die obere Schleife mit dem Clumpy-Way-Of-Life:
var sum = 0;
clumpy.for_loop(
function () { i = 0; },
function () { return i < 100000; },
function () { i++; },
function () {
sum += i;
}
);
Clumpy kann aber noch viel mehr: Verschachtelung von Schleifen, Verkettung, saubere Notification über den Status … etc … I am impressed my dear!
* Die asynchronen HTTP-Requests werden über, nun ja, esoterische Mittel realisiert, damit eine Anfrage nicht blockiert.
Geschrieben am Mittwoch, 02. Dezember 2009, von Alex, abgelegt unter Allgemein
Tags: Background Task, Javascript, Nebenläufigkeit, Technikzeugs






