W3C home > Mailing lists > Public > whatwg@whatwg.org > January 2011

[whatwg] WebWorkers and images

From: Glenn Maynard <glenn@zewt.org>
Date: Thu, 13 Jan 2011 05:35:38 -0500
Message-ID: <AANLkTim8Gat-rxnFaDRKi9fw8z-t-tQLrYQdgP5AEVOt@mail.gmail.com>
On Thu, Jan 13, 2011 at 5:08 AM, Berend-Jan Wever <skylined at chromium.org> wrote:
> I ended up creating a PageWorker object, which is constructed in the page
> rather then in a WebWorker. It uses setInterval to repeatedly run a function
> in the background to do the image processing directly on the canvas imageD
> data. To reduce overhead, each interval runs the function in a small loop
> for a certain number of ms. After each interval, the browser gets some time
> to do UI updating. This seems to work well in my Mandelbrot fractal
> renderer; the browser remains responsive:
> http://skypher.com/SkyLined/demo/FractalZoomer/Mandel.html

That's exactly the cumbersome, problematic programming model that web
workers specifically seek to eliminate.

(I loaded that, and the browser became painfully unresponsive in FF
3.6; opening a menu took about a quarter second.  In order to keep the
browser properly responsive, you'd need to return so often that the
10ms minimum timer duration in most browsers will cause the algorithm
to take notably longer.)

Note that if your computational work is entirely working with
ImageData, you can send the ImageData to a thread.  It's limiting (you
can't blit images to the canvas that way, since you don't have the
Canvas interface), but it may be enough for your case.

-- 
Glenn Maynard
Received on Thursday, 13 January 2011 02:35:38 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:29 UTC