“Macenstein.com has an interesting article about a slowdown in other applications when a Safari window with a specific set of pages is loaded in the background. What a browser should do when it is the background application is actually extremely complex, and not all of the decisions are as clear-cut as they might seem,” Dave Hyatt blogs for Surfin’ Safari.
Hyatt explains, “Before I drill into the specifics of what a browser does with background Web pages, I’d like to first state that it’s dangerous to jump to any general conclusions when the sample set of pages is very small. In the example article cited above, the author visited five Web sites and clicked around within them. It’s possible that this pathological behavior is specific not just to one Web site but possibly even to one specific page on that Web site. In order to identify the problem it would be better to try the test again with each individual page.”
Hyatt writes, “One might expect that a background browser window would do nothing. However, that is a fairly naive assumption once you take a look at the kind of Web content that exists today. There are many ways in which a browser can still be doing required work even while in the background. Here are some examples:”
• Animated GIFs
• Plugins
• JS Timeouts and Interval
• Marquees
• XMLHTTPRequests
• The Back/Forward Cache
Hyatt writes:
A few other final points to make are:
(1) Browsers rarely get served the same content, even on very popular sites. Without spoofing it’s hard to know if Safari is being served some buggy content from one of the pages in question.
(2) A small sample set isn’t enough to draw general conclusions. Try a bunch of other different Web sites and see if a slowdown still occurs. If so, then maybe there is a systemic problem. Until then, though, all we know is that something is hogging CPU in one of five Web pages.
(3) Reduce reduce reduce! Reduce the problem if possible. Cut it down to one page. Don’t go back/forward (just go right to the pages instead of clicking through to them).
Provide us with precise steps to reproduce and we can verify what the problem is and fix it very quickly. In fact, it may have already been fixed!
Full article here.
[Thanks to MacDailyNews Reader “davecc” for the heads up.]
MacDailyNews Take: Dave Hyatt is employed by Apple Inc. as part of the development team responsible for the Safari web browser and WebKit framework. He was part of the original team that shipped the beta releases and 1.0 release of Safari. Hyatt is currently the Safari and WebKit Architect.