W3C home > Mailing lists > Public > public-webapps@w3.org > October to December 2009

RE: solving the CPU usage issue for non-visible pages

From: Ennals, Robert <robert.ennals@intel.com>
Date: Wed, 21 Oct 2009 03:13:51 +0100
To: Jonas Sicking <jonas@sicking.cc>, "robert@ocallahan.org" <robert@ocallahan.org>
CC: "public-webapps@w3.org" <public-webapps@w3.org>
Message-ID: <EB332302649177439359CE520D92A0AF9F3963A7@irsmsx503.ger.corp.intel.com>
> On Tuesday, October 20, 2009 at 5:37 PM, Jonas Sicking <jonas@sicking.cc> wrote:
> On Tue, Oct 20, 2009 at 4:44 PM, Robert O'Callahan
> <robert@ocallahan.org> wrote:
> > On Wed, Oct 21, 2009 at 11:59 AM, Ennals, Robert
> <robert.ennals@intel.com>
> > wrote:
> >>
> >> Should we also consider the case where a web site wants to keep its
> >> interface up to date with some server state and is using up CPU time
> and
> >> network resource to do so?
> >
> > You could abuse my proposal to do this, by periodically (as
> frequently as
> > you run script now) calling requestAnimationFrame and seeing if you
> actually
> > get a paint event. Maybe that's not an ideal solution, though.
> 
> Yeah, I think having an API that lets you check if the page is
> visible, as well as an event that lets you know when the visibility
> changes, would be a good idea. That's better than adding *WhenVisible
> APIs, like setTimeoutWhenVisible, EventSourceWhenVisible, etc.

One thing I like about the "requestAnimationFrame" approach is that it makes it easy to do the right thing. If the simplest approach burns CPU cycles, and programmers have to think a bit harder to avoid doing this, then I suspect the likely outcome would be that many programmers will take the shortest path, and not check whether their page is visible.  

I'd even be tempted to risk breaking existing applications a little bit and make the *default* behavior for HTML5 pages be that "time stops" when a page is not visible. If a programmer has a good reason to run javascript on an invisible page then they should have to pass an option to make it clear that they know what they are doing.

I'm sure there are lots of reasons why this wouldn't work, but you get the idea :-)


-Rob
Received on Wednesday, 21 October 2009 02:15:48 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:34 GMT