In a previous post, I showed that websites can continue making requests well after the page has been minimized when using Chrome on Android. The examples I used were chat bots and advertisers that kept pinging their servers to send information back to the mothership.
But what happens if you minimize the browser mid-page load? Does the page continue loading? I asked Twitter what they expected would happen:
It appears the vote is split 50/50 with the expectation of continued page load, or fully loading the page. So what really happens? Based on a few experiments, I see new requests and the entire page loading – even when the browser is minimized.
Example 1: CNN.com
In this video, I am using the Chrome Desktop to inspect the load of CNN.com on my Nokia 6 device (running on cellular). I took a video of my desktop screen to follow the load of the page. For the first 12 seconds, it goes much as expected, but at t=12, I hit the home button on my phone, placing Chrome in the background. This shows as “The Tab is Inactive” on the left of the devtools.
At the moment the browser is placed in the background, devTools reports 88 total requests, and 1.5 MB of data transferred.
But, if you continue to watch the video, more and more requests are made, until at 34 seconds (the end of the video), 185 requests and 3.2 MB of data have been transferred. Over 100 requests, and >50% of the data passed across the cellular network occurred after I “left the page.”
Where does 3.2 MB of data stand with a regular CNN page load? (This test was performed in Finland.)
Compared to WebPageTest (in the US), my test used 1.3 MB less data:
But compared to an emulated Android in Stockholm, I use much more data:
These numbers are a bit all over the place, but it appears that the page very nearly (or perhaps) completely loaded all of the content, as if the page were loading normally (and not minimized).
In subsequent tests, I background the page immediately, and still get the same results in DevTools. To some degree, this is kind of nice, I can come back to the browser, and the page is completely there. But is this how people use the browser?
Example 2: Video Streaming Website
This video streaming website is one of my “favourites” for using an insane amount of data on a mobile device. For those who love web performance (it is best tested on a mobile device), it may just be worth watching this page load at half speed. In the first 20 seconds you can see 91 requests fly by (with dozens of sequential advertisers.txt files).
By t=22, when I background the page, we are already to 238 requests and 2.2 MB transferred.
But, as you keep watching – the page still has a lot more to load. At t=29 (the page has been ‘closed’ for 7s), I see the first requests for video files from videos.vidible.tv:
In the video, I begin scrolling through the timeline, and at t=39, we can see that some of the video requests are starting to add up (in the screenshot below, there are 2 requests of 1.0 MB each, and the total data transferred is 10.5 MB:
If you watch the video all the way through, I highlight many requests made after the browser was minimized, yet still result in huge MB download costs. For example, this screen capture from the video shows a request Queued at 48s, and took 35s to download:
Since the page was minimized 22s into the video recording, this request was made 25 seconds after I stopped consuming the content. To me, this is unexpected.
By the end, my phone has blown through over 103 MB of cellular data, and 1880 requests! That’s 100 MB and ~1500 requests after I closed the page!!
As a user, if I close the browser, I suppose there are 2 possibilities:
- I expect that the data transfer should ‘just stop’ and that no more ‘stuff’ should get downloaded.
- This is a “preload” technique for users – load a page and then come back later to consume.
I fall in the the first camp – I am always running out of data, and would prefer the browser to stop loading stuff when it is in the background. But, I can see and understand the 2nd use case.
In testing “partially downloaded sites” I find that minimizing the browser mid page load does not stop the page from downloading – the page appears to load completely in the background. For inappropriately large websites, the current implementation has potential battery drain and data usage concerns.