- From: Ian Hickson <ian@hixie.ch>
- Date: Sun, 18 Oct 2009 03:23:20 +0000 (UTC)
On Thu, 15 Oct 2009, Boris Zbarsky wrote: > On 10/15/09 3:35 PM, Gregg Tavares wrote: > > 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. > > You might be interested in > http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/527d0cedb9b0df7f/57625c94cdf493bf > for some more discussion about approaches to this problem. In > particular, that proposal tries to address overeager animations in > visible windows as well. > > Note, by the way, that testing whether a window is "visible" is not > cheap; testing whether an element is "visible" is even less cheap.... On Thu, 15 Oct 2009, Jeremy Orlow wrote: > > I'd imagine that UAs could use an overly conservative metric of when > things are visible to make things cheaper if/when this is a concern. > All that really matters is that the UA never say it isn't visible when > any part of the window is visible. > > I agree that some mechanism to know when things aren't visible would be > very useful. On Thu, 15 Oct 2009, Boris Zbarsky wrote: > > It's a concern any time someone's checking it every 10ms interval > invocation. For example, I'm right now looking at a browser window where > the check would probably take longer than that (ping time from the X > client to the X server is 50ms in this case). > > What are the use cases? Are they addressed by roc's proposal? If not, > is an explicit script-triggered visibility check the only way to address > them? On Thu, 15 Oct 2009, Jo?o Eiras wrote: > > You're trying to solve a real problem with a very specific API. You > might use setInterval, but someone else might use a worker or > setTimeout. > > The best way would be an attribute on the window, like window.isVisible > returning either true of false which would return true if the document > is partially or totally visible. This way, all other possible use cases > to prevent animations or other complex and heavy dom/layout operations > could be postponed just by checking that value. > > I personally think it's a good idea to have that info available. On Thu, 15 Oct 2009, Markus Ernst wrote: > > 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. On Fri, 16 Oct 2009, Gregg Tavares wrote: > > I agree that would be ideal. Unfortunately, current webpages already > expect setInternval to function even when they are not visible. web > based chat and mail clients come to mind as examples. So, unfortunately, > it doesn't seem like a problem a UA can solve on it's own. > > On the otherhand, if the solution is as simple as add a flag to > setInterval then it's at least a very simple change for those apps that > want to not hog the CPU when not visible. I haven't added this feature to HTML5, as it seems more of a presentational thing and would be best addressed in a spec like CSSOM. I would recommend taking this up in the webapps group. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Saturday, 17 October 2009 20:23:20 UTC