workers; hixie: Add more shared worker examples. (whatwg r4865)

workers; hixie: Add more shared worker examples. (whatwg r4865)

http://dev.w3.org/cvsweb/html5/workers/Overview.html?r1=1.237&r2=1.238&f=h
http://html5.org/tools/web-apps-tracker?from=4864&to=4865

===================================================================
RCS file: /sources/public/html5/workers/Overview.html,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -d -r1.237 -r1.238
--- Overview.html 24 Mar 2010 22:26:35 -0000 1.237
+++ Overview.html 25 Mar 2010 00:52:59 -0000 1.238
@@ -193,7 +193,7 @@
    <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
    <h1>Web Workers</h1>
 
-   <h2 class="no-num no-toc" id="editor-s-draft-24-march-2010">Editor's Draft 24 March 2010</h2>
+   <h2 class="no-num no-toc" id="editor-s-draft-25-march-2010">Editor's Draft 25 March 2010</h2>
    <dl><dt>Latest Published Version:</dt>
     <dd><a href="http://www.w3.org/TR/workers/">http://www.w3.org/TR/workers/</a></dd>
     <dt>Latest Editor's Draft:</dt>
@@ -254,7 +254,7 @@
   Working Group</a> is the W3C working group responsible for this
   specification's progress along the W3C Recommendation track.
 
-  This specification is the 24 March 2010 Editor's Draft.
+  This specification is the 25 March 2010 Editor's Draft.
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href="http://www.whatwg.org/">WHATWG</a>. The two specifications are
   identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to specify a part of the Web
   platform closely related to HTML5. It is defined in a separate
@@ -278,9 +278,10 @@
      <li><a href="#a-background-number-crunching-worker"><span class="secno">1.2.1 </span>A background number-crunching worker</a></li>
      <li><a href="#a-worker-for-updating-a-client-side-database"><span class="secno">1.2.2 </span>A worker for updating a client-side database</a></li>
      <li><a href="#worker-used-for-background-i-o"><span class="secno">1.2.3 </span>Worker used for background I/O</a></li>
-     <li><a href="#shared-workers"><span class="secno">1.2.4 </span>Shared workers</a></li>
-     <li><a href="#delegation"><span class="secno">1.2.5 </span>Delegation</a></li>
-     <li><a href="#providing-libraries"><span class="secno">1.2.6 </span>Providing libraries</a></ol></ol></li>
+     <li><a href="#shared-workers-introduction"><span class="secno">1.2.4 </span>Shared workers introduction</a></li>
+     <li><a href="#shared-state-using-a-shared-worker"><span class="secno">1.2.5 </span>Shared state using a shared worker</a></li>
+     <li><a href="#delegation"><span class="secno">1.2.6 </span>Delegation</a></li>
+     <li><a href="#providing-libraries"><span class="secno">1.2.7 </span>Providing libraries</a></ol></ol></li>
  <li><a href="#conformance-requirements"><span class="secno">2 </span>Conformance requirements</a>
   <ol>
    <li><a href="#dependencies"><span class="secno">2.1 </span>Dependencies</a></ol></li>
@@ -461,7 +462,20 @@
 };</pre><p>The search query worker is as follows:<pre>importScripts('io.js');
 onmessage = function (event) {
   postMessage(get('search.cgi?' + event.data));
-};</pre><p><a href="http://www.whatwg.org/demos/workers/stocks/page.html">View this example online</a>.<h4 id="shared-workers"><span class="secno">1.2.4 </span>Shared workers</h4><p><i>This section is non-normative.</i><p>In this example, multiple windows (viewers) can be opened that
+};</pre><p><a href="http://www.whatwg.org/demos/workers/stocks/page.html">View this example online</a>.<h4 id="shared-workers-introduction"><span class="secno">1.2.4 </span>Shared workers introduction</h4><p><i>This section is non-normative.</i><p>This section introduces shared workers using a Hello World
+  example. Shared workers use slightly different APIs, since each
+  worker can have multiple connections.<p>This first example shows how you connect to a worker and how a
+  worker can send a message back to the page when it connects to
+  it. Received messages are displayed in a log.<p>Here is the HTML page:<pre>EXAMPLE workers/shared/001/test.html</pre><p>Here is the JavaScript worker:<pre>EXAMPLE workers/shared/001/test.js</pre><hr><p>This second example extends the first one by changing two things:
+  first, messages are received using <code title="">addEventListener()</code> instead of an <span title="event
+  handler IDL attributes">event handler IDL attribute</span>, and
+  second, a message is sent <em>to</em> the worker, causing the worker
+  to send another message in return. Received messages are again
+  displayed in a lot.<p>Here is the HTML page:<pre>EXAMPLE workers/shared/001/test.html</pre><p>Here is the JavaScript worker:<pre>EXAMPLE workers/shared/001/test.js</pre><hr><p>Finally, the example is extended to show how two pages can
+  connect to the same worker; in this case, the second page is merely
+  in an <code>iframe</code> on the first page, but the same principle
+  would apply to an entirely separate page in a separate
+  <span>top-level browsing context</span>.<p>Here is the outer HTML page:<pre>EXAMPLE workers/shared/003/test.html</pre><p>Here is the inner HTML page:<pre>EXAMPLE workers/shared/003/inner.html</pre><p>Here is the JavaScript worker:<pre>EXAMPLE workers/shared/003/test.js</pre><h4 id="shared-state-using-a-shared-worker"><span class="secno">1.2.5 </span>Shared state using a shared worker</h4><p><i>This section is non-normative.</i><p>In this example, multiple windows (viewers) can be opened that
   are all viewing the same map. All the windows share the same map
   information, with a single worker coordinating all the viewers. Each
   viewer can move around independently, but if they set any data on
@@ -714,7 +728,7 @@
   "msg" message from one viewer naming another viewer, it sets up a
   direct connection between the two, so that the two viewers can
   communicate directly without the worker having to proxy all the
-  messages.<p><a href="http://www.whatwg.org/demos/workers/multiviewer/page.html">View this example online</a>.<h4 id="delegation"><span class="secno">1.2.5 </span>Delegation</h4><p><i>This section is non-normative.</i><p>With multicore CPUs becoming prevalent, one way to obtain better
+  messages.<p><a href="http://www.whatwg.org/demos/workers/multiviewer/page.html">View this example online</a>.<h4 id="delegation"><span class="secno">1.2.6 </span>Delegation</h4><p><i>This section is non-normative.</i><p>With multicore CPUs becoming prevalent, one way to obtain better
   performance is to split computationally expensive tasks amongst
   multiple workers. In this example, a computationally expensive task
   that is to be performed for every number from 1 to 10,000,000 is
@@ -777,7 +791,7 @@
   close();
 }</pre><p>They receive two numbers in two events, perform the computation
   for the range of numbers thus specified, and then report the result
-  back to the parent.<p><a href="http://www.whatwg.org/demos/workers/multicore/page.html">View this example online</a>.<h4 id="providing-libraries"><span class="secno">1.2.6 </span>Providing libraries</h4><p><i>This section is non-normative.</i><p>Suppose that a cryptography library is made available that
+  back to the parent.<p><a href="http://www.whatwg.org/demos/workers/multicore/page.html">View this example online</a>.<h4 id="providing-libraries"><span class="secno">1.2.7 </span>Providing libraries</h4><p><i>This section is non-normative.</i><p>Suppose that a cryptography library is made available that
   provides three tasks:<dl><dt>Generate a public/private key pair</dt>
 
    <dd>Takes a port, on which it will send two messages, first the

Received on Thursday, 25 March 2010 00:53:44 UTC