[whatwg] Web Workers: include simple example for shared workers

Simon Pieters simonp at opera.com
Thu Feb 25 00:41:28 PST 2010


On Tue, 23 Feb 2010 21:36:15 +0100, Simon Pieters <simonp at opera.com> wrote:

> step 3.
>
> test.html
> <pre id="log">Log:</pre>
> <script>
> var worker = new SharedWorker('test.js');
> var log = document.getElementById('log');
> worker.port.addEventListener('message', function(e) {
>    log.textContent += '\n' + e.data;
> }, false);
> worker.port.start();
> worker.port.postMessage('ping');
> </script>
> <iframe src=other.html></iframe>
>
> other.html
> <pre id=log>Inner log:</pre>
> <script>
> var worker = new SharedWorker('test.js');
> var log = document.getElementById('log');
> worker.port.onmessage = function(e) {
>    log.textContent += '\n' + e.data;
> }
> </script>
>
> test.js
> onconnect = function(e) {
>    var port = e.ports[0];
>    port.postMessage('hello');
>    port.onmessage = function(e) {
>      port.postMessage('pong');
>    }
> }

The worker script could be modified in step 3 as follows to make it clear  
that the script is in fact shared:

test.js
var i = 0;
onconnect = function(e) {
   i++;
   var port = e.ports[0];
   port.postMessage('hello, ' + i);
   port.onmessage = function(e) {
     port.postMessage('pong');
   }
}

-- 
Simon Pieters
Opera Software



More information about the whatwg mailing list