Information Technology Reference
In-Depth Information
postMessage("y "+d.getFullYear()+"-"
+(d.getMonth()+1));
oldMonth = d.getMonth();
}
}
}, false);
Eine for -Schleife im Worker läuft von der Sekunde 0 bis zum aktuellen Datum
( today ), wobei für die Schrittweite der von postMessage() übergebene Wert mit
der Number() -Funktion in eine Zahl konvertiert und anschließend mit 1000 mul-
tipliziert wird. Der Zugriff auf die postMessage() -Daten erfolgt dabei über das
data -Attribut, das Sie bereits aus dem vorangegangenen Kapitel zu Websockets
kennen. Die Multiplikation mit 1000 ist notwendig, da die Variable today den ak-
tuellen Wert in Millisekunden und nicht in Sekunden enthält. Wird ein Datum in
der Schleife als der 29. Februar erkannt, so schickt der Worker eine Nachricht
an das aufrufende Script und übergibt den Tag als formatierte Zeichenkette.
Um den aktuellen Fortschritt der Berechnung anzuzeigen, sendet das Programm
eine weitere Nachricht, sobald die Schleife in einem neuen Monat ankommt. Die-
se Nachricht beginnt mit der Zeichenkette "y " und enthält anschließend das
Jahr und den Monat. Wie das aufrufende Script diese Nachricht von einer Schalt-
jahr-Benachrichtigung unterscheidet, zeigt das folgende Listing:
w.onmessage = function(evt) {
if (evt.data.substr(0,2) == "y ") {
$("y").innerHTML = evt.data.substr(2);
} else {
$("cnt").innerHTML += "Schaltjahr: "+evt.data+"\n";
}
}
Mit der substr() -Funktion werden die ersten zwei Zeichen der Variable evt
.data extrahiert und mit dem Wert "y " verglichen. Bei einer Übereinstimmung
wird das Feld für die Anzeige des Datums aktualisiert, andernfalls wird das
Datum als neue Zeile an das Feld mit der ID cnt angehängt. Wie schon in vie-
len anderen Beispielen verwenden wir die $() -Funktion als Abkürzung für den
document.getElementById() -Aufruf.
Läuft der Worker zu lange (zum Beispiel, weil Ihr Computer nicht schnell ge-
nug rechnet), können Sie das Ende des Prozesses mit der
S TOP -Schaltfläche
erzwingen. Dazu wird der Worker mit der terminate() -Funktion beendet, und
anschließend wird der während der Berechnung inaktive
S TART -Button wieder
aktiviert.
Search WWH ::




Custom Search