[whatwg] window.setInterval if visible.
Markus Ernst
derernst at gmx.ch
Thu Oct 15 13:53:54 PDT 2009
Gregg Tavares schrieb:
> I was wondering if there as been a proposal for either an optional
> argument to setInterval that makes it only callback if the window is
> visible OR maybe a window.setRenderInterval.
>
> Here's the issue that seems like it needs to be solved.
>
> Currently, AFAIK, the only way to do animation in HTML5 + JavaScript is
> using setInterval. That's great but it has the problem that even when
> the window is minimized or the page is not the front tab, JavaScript has
> no way to know to stop animating. So, for a CPU heavy animation using
> canvas 2d or canvas 3d, even a hidden tab uses lots of CPU. Of course
> the browser does not copy the bits from the canvas to the window but
> JavaScript is still drawing hundreds of thousands of pixels to the
> canvas's internal image buffer through canvas commands.
[...]
>
> There are probably other possible solutions to this problem but it seems
> like the easiest would be either
>
> *) adding an option to window.setInterval or only callback if the window
> is visible
>
> *) adding window.setIntervalIfVisible (same as the previous option really)
>
> A possibly better solution would be
>
> *) element.setIntervalIfVisible
>
> Which would only call the callback if that particular element is visible.
From a performance point of view it might even be worth thinking about
the contrary: Allow UAs to stop the execution of scripts on non-visible
windows or elements by default, and provide a method to explicitly
specify if the execution of a script must not be stopped.
If you provide methods to check the visibility of a window or element,
you leave it up to the author to use them or not. I think performance
issues should rather be up to the UA.
More information about the whatwg
mailing list