开发者

HTML5: shared web worker with multiple connections

From what I understand, the big benefit of HTML5's shared web workers is that they can accept multiple connections in a single separate thread of execution.

My question is: has anyone gotten multiple connections with a SharedWorker to work as a single thread with Google Chrome? I'm using latest version 12.0.742.112.

Demo: http://demos.zulius.com/html5/sharedworker

Source (in case demo is down): index.html, sharedworker.js

The demo establishes 2 开发者_运维百科separate event listeners. The expected output is:

foo got message: Hello World! You are connection #1
bar got message: Hello World! You are connection #2

In the demo, both event listeners fire correctly, but the connection count variable is not maintained in the SharedWorker script. This leads me to believe each connection to the SharedWorker is executing in a separate thread.

Am I doing something wrong? Or is Chrome support for SharedWorker not quite there?

UPDATE: the demo works now.


You have 2 listeners to the Worker but you only start the Worker for once, so it's 1 Worker shared by 1 owner instead of 2 owners. Increasing the number of listeners doesn't affect the ownership.

You can see the example here: http://weblog.bocoup.com/javascript-web-workers-chrome-5-supports-new-sharedworker

It has 2 frames, one containing the iframe and one inside the iframe. They both call the start method of the Worker so it's shared by 2 owners. Since the start method is called twice, the onconnect event should be fired twice, thus making connection.count equal 2.


In shared webworkers the context is alive till the last browser session end. shared webworkers can maintain the context around the browser tabs. They respond to the requests with the same context of data.

The change in context of data will affect all connections, the possibilities are you can update all the connections with single context change, you can maintain the data till the last connection end. you can maintain the connection changes in all views.

Here is a demo of Shared web workers with multiple connections.

http://www.antkorp.in/sharedworkers/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜