W3C home > Mailing lists > Public > public-html-commits@w3.org > August 2008

html5/workers Overview.html,1.28,1.29

From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
Date: Wed, 06 Aug 2008 09:32:52 +0000
To: public-html-commits@w3.org
Message-Id: <E1KQfO0-0004EW-Sg@lionel-hutz.w3.org>

Update of /sources/public/html5/workers
In directory hutz:/tmp/cvs-serv16231

Modified Files:
	Overview.html 
Log Message:
First example. (whatwg r36)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/workers/Overview.html,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- Overview.html	6 Aug 2008 08:50:38 -0000	1.28
+++ Overview.html	6 Aug 2008 09:32:50 -0000	1.29
@@ -182,6 +182,10 @@
    <li><a href="#introduction"><span class=secno>1. </span>Introduction</a>
     <ul class=toc>
      <li><a href="#tutorial"><span class=secno>1.1 </span>Tutorial</a>
+      <ul class=toc>
+       <li><a href="#a-background"><span class=secno>1.1.1 </span>A
+        background number-crunching thread</a>
+      </ul>
 
      <li><a href="#conformance"><span class=secno>1.2 </span>Conformance
       requirements</a>
@@ -242,7 +246,66 @@
 
   <p><em>This section is non-normative.</em>
 
-  <p class=big-issue>This section is missing.
+  <p>There are a variety of uses that workers can be put to. The following
+   subsections show various examples of this use.
+
+  <h4 id=a-background><span class=secno>1.1.1 </span>A background
+   number-crunching thread</h4>
+
+  <p><em>This section is non-normative.</em>
+
+  <p>The simplest use of workers is for performing a computationally
+   expensive task without interrupting the user interface.
+
+  <p>In this example, the main document spawns a thread to (na&iuml;vely)
+   compute prime numbers, and progressively displays the most recently found
+   prime number.
+
+  <p>The main page is as follows:
+
+  <pre>&lt;!DOCTYPE HTML>
+&lt;html>
+ &lt;head>
+  &lt;title>Worker example: Computation&lt;/title>
+ &lt;/head>
+ &lt;body>
+  &lt;p>The highest prime number discovered so far is: &lt;output id="result">&lt;/output>&lt;/p>
+  &lt;script>
+   var worker = createWorker('worker.js');
+   worker.onmessage = function (event) {
+     document.getElementById('result').textContent = event.message;
+   };
+  &lt;/script>
+ &lt;/body>
+&lt;/html></pre>
+
+  <p>The <code title=dom-WorkerFactory-createWorker><a
+   href="#createworker">createWorker()</a></code> method call creates a
+   worker and returns a <code>MessagePort</code> object, which is used to
+   communicate with the worker. That object's <code
+   title=dom-MessagePort-onmessage>onmessage</code> event handler attribute
+   allows the code to receive messages from the worker.
+
+  <p>The worker itself is as follows:
+
+  <pre>var n = 1;
+search: while (true) {
+  n += 1;
+  for (var i = 2; i &lt;= Math.sqrt(n); i += 1)
+    if (n % i == 0)
+     continue search;
+  // found a prime!
+  port.postMessage(n);
+}</pre>
+
+  <p>The bulk of this code is simply an unoptimised search for a prime
+   number. To send a message back to the page, the <code
+   title=dom-WorkerGlobalScope-port>port</code> variable (defined
+   automatically when the worker is created) is used to post a message when a
+   prime is found.
+
+  <p><a href="http://www.whatwg.org/demos/workers/primes/page.html">View this
+   example online</a>.
 
   <h3 id=conformance><span class=secno>1.2 </span>Conformance requirements</h3>
 
@@ -910,10 +973,6 @@
      title="">port</var> that was passed to these steps.
 
    <li>
-    <p>Set the <code title=dom-MessagePort-active>active</code> attribute of
-     both ports to true.
-
-   <li>
     <p>At the next available opportunity, after any scripts have finished
      executing<!-- XXX queue -->, <span>fire a simple event</span> called
      <code title=event-load>load</code> at <var title="">port</var>.
Received on Wednesday, 6 August 2008 09:33:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 9 October 2008 20:32:58 GMT