[JST] Pi calculated using WebWorker
HTML
<button id=startButton>Start calculation</button>
<div id=output>
</div>
JavaScript
// Some magic to run function as WebWorker
var workerBlob = new Blob(["(" + worker.toString() + ")()"], { type: 'text/javascript' }),
workerInstance;
startButton.onclick = function() {
if (workerInstance) {
workerInstance.terminate();
}
output.innerHTML = "";
workerInstance = new Worker(URL.createObjectURL(workerBlob));
workerInstance.onmessage = function(e) {
output.innerHTML += "<div>" + e.data + '</div>';
};
workerInstance.postMessage(null);
};
function worker() {
onmessage = function(e) {
var pi = 0,
n = 1;
for (var n = 1;; n+=4) {
pi = pi + (4 / n) - (4 / (n + 2));
if ((n -1) % 200000000 == 0) {
postMessage(pi);
}
}
};
}