Confirmed users
137
edits
Bent.mozilla (talk | contribs) No edit summary |
Bent.mozilla (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
== Current API for Firefox 3.1 Alpha | |||
== Sample usage == | |||
<blockquote> | |||
<code> | |||
<pre> | |||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | |||
<html> | |||
<title>Fibonacci from a worker thread</title> | |||
<body> | |||
<div id="start-div"></div> | |||
<p><div id="result-div">Result from worker: (pending)</div></p> | |||
<div id="end-div"></div> | |||
<script language="javascript"> | |||
var startdiv = document.getElementById("start-div"); | |||
var resultdiv = document.getElementById("result-div"); | |||
var enddiv = document.getElementById("end-div"); | |||
startdiv.innerHTML = "Started: " + new Date(); | |||
function scriptToRun(){ | |||
// Hook us up to receive messages from the pool | |||
this.messageListener = function(message, source) { | |||
var num = parseInt(message); | |||
if (isNaN(num)) { | |||
throw "Pool sent a value we couldn't interpret!"; | |||
} | |||
postMessageToPool(fibonacci(num)); | |||
}; | |||
// Worst implementation of fibonacci *ever*! | |||
function fibonacci(n) { | |||
if(n == 0) | |||
return 0; | |||
if(n == 1) | |||
return 1; | |||
return fibonacci(n - 1) + fibonacci(n - 2); | |||
} | |||
} | |||
var wp = navigator.newWorkerPool(); | |||
wp.messageListener = function(message, source) { | |||
resultdiv.innerHTML = "Result from worker: " + message; | |||
enddiv.innerHTML = "Finished: " + new Date(); | |||
}; | |||
wp.errorListener = function(error, source) { | |||
alert("Worker had an error: " + error); | |||
} | |||
var thread = wp.createWorker("" + scriptToRun + "scriptToRun();"); | |||
thread.postMessage(35); | |||
</script> | |||
</body> | |||
</html> | |||
</pre> | |||
</code> | |||
</blockquote> | |||
== Current API for Firefox 3.1 Alpha 2 == | |||
This API has *already* changed, so it is only valid for Alpha 2. | |||
<blockquote> | <blockquote> | ||
Line 156: | Line 224: | ||
The worker's scope is far more limited. See <code>nsIDOMWorkerGlobalScope</code> above for details. | The worker's scope is far more limited. See <code>nsIDOMWorkerGlobalScope</code> above for details. | ||