DOMWorkerThreads current: Difference between revisions

Jump to navigation Jump to search
(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...)
 
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>Test threads</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 = 'function messageListener(message, source) { ' +
     var startdiv = document.getElementById("start-div");
                      '  dump("Worker: " + message + "\\n"); ' +
    var resultdiv = document.getElementById("result-div");
                      '} ' +
    var enddiv = document.getElementById("end-div");
                      'for (var i = 0; i < 10000000; i++) { ' +
 
                      ' /* do something */ ' +
    startdiv.innerHTML = "Started: " + new Date();
                      '} '+
 
                      'postMessageToPool("Done!"); ';
    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) {
       dump("Pool: " + message + "\n");
       resultdiv.innerHTML = "Result from worker: " + message;
      enddiv.innerHTML = "Finished: " + new Date();
     };
     };
     wp.errorListener = function(error, source) {
     wp.errorListener = function(error, source) {
       dump("Pool: error = '" + error + "'\n");
       alert("Worker had an error: " + error);
     }
     }


     var threads = []
     var thread = wp.createWorker("" + scriptToRun + "scriptToRun();");
    for (var i = 0; i < 10; i++) {
    thread.postMessage(30);
      var thread = wp.createWorker(scriptToRun);
      thread.postMessage("hello");
      threads.push(thread);
    }


   </script>
   </script>
   </body>
   </body>
</html>
</html>


</pre>
</pre>
</code>
</code>
</blockquote>
</blockquote>
Confirmed users
137

edits

Navigation menu