Confirmed users
137
edits
Bent.mozilla (talk | contribs) (New page: Here's what we have in Firefox 3.1 Alpha 1: <blockquote> <code> <pre> #include "nsISupports.idl" interface nsIDOMWorkerThread; interface nsIScriptError; [scriptable, function, uuid(e50c...) |
Bent.mozilla (talk | contribs) |
||
| Line 163: | Line 163: | ||
<code> | <code> | ||
<pre> | <pre> | ||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | ||
<html> | <html> | ||
<title> | <title>Fibonacci from a worker thread</title> | ||
<body> | <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"> | <script language="javascript"> | ||
var scriptToRun = | 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(); | var wp = navigator.newWorkerPool(); | ||
wp.messageListener = function(message, source) { | wp.messageListener = function(message, source) { | ||
resultdiv.innerHTML = "Result from worker: " + message; | |||
enddiv.innerHTML = "Finished: " + new Date(); | |||
}; | }; | ||
wp.errorListener = function(error, source) { | wp.errorListener = function(error, source) { | ||
alert("Worker had an error: " + error); | |||
} | } | ||
var thread = wp.createWorker("" + scriptToRun + "scriptToRun();"); | |||
thread.postMessage(30); | |||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> | ||
</pre> | </pre> | ||
</code> | </code> | ||
</blockquote> | </blockquote> | ||