[whatwg] WebWorkers and images

Le 07/01/2011 14:40, Berend-Jan Wever a ?crit :
> Thanks guys, that makes sense (unfortunately).
>
> So, would it be possible:
>
> 1) To give WebWorkers access to the DOM API so they can create their own
> elements such as img, canvas, etc...?
As I mentionned, Ian Hickson's response also covers provoding the DOM 
API since DOM implementations (besides the document object) aren't 
thread-safe.
So currently no (as far as I know). A (laborious) workaround of that 
would be to reimplement the API

> 2) To create a way to communicate media data between web workers and pages
> without serialization, so they can pass img, video, and/or audio with high
> throughput?
The postMessage method takes "any" as argument. You can learn more about 
this here :
http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#posting-messages
You can pass "structured clone" as messages 
(http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#structured-clone)
Basically I understand it as : any "hand-made" ECMAScript (JavaScript) 
object should pass through by postMessage in WebWorkers. Thanks to this 
you should have "enough structure" to emulate a partial reduced DOM tree 
if you want to pre-format your data without having to pass a string 
(what I understand when you say "serialization").




> 3) Introduce a set of "shared" objects, which are re-entrancy save versions
> of a very limited sub-set of classes in the DOM API.
Once again, DOM implementation thread-safety problem. I wish the same 
features than you, but web browsers aren't ready yet for this.


I wish to see parallelism to the browser as much as you do, but we are 
going to have to wait for a bit to have it fully useful from the web 
developer point of view.


For the record, I know that there is some work going on to add 
parallelism to ECMAScript (JavaScript) itself (and not some DOM 
expansion as WebWorkers are) :
http://wiki.ecmascript.org/doku.php?id=strawman:concurrency

Hope it helps,

David

Received on Friday, 7 January 2011 06:06:04 UTC