LazyLoad: No more wasted data on the web (for Android, first)

Chris Burns - Feb 6, 2018
LazyLoad: No more wasted data on the web (for Android, first)

In the near future on the Chrome web browser on Android there’ll be a feature called Blink LazyLoad. This feature stops webpages from loading until the parts of the webpage the user needs are requested. Questions remain about how this will affect users looking to read webpages offline, but for everybody else, this might well be the next big step in saving on unwanted and unnecessary mobile data use. Until you scroll down, everything below the cut will be FROZEN.

Two parts of this system exist. One is Blink LazyFrames, the other is Blink LazyImages. The loading of frames is deferred if a frame is a 3rd-party iframe, is larger than 4×4 dimensions, is not marked as display:none or visibility:hidden, and is not positioned off-screen using negative x or y coordinates. This system will not defer the loading of first-party iframes as they share a javascript context with the embedding page.

The frames bit of this feature is, at first, recording data on how much mobile data is deferred, per frame. For now, the system will record a flat 50kb per frame, and will re-add 50kb if a frame is later loaded. This is in contrast with the images that’ll be deferred, each of which will be calculated by parsing the full resource size from the Content-Range response header.

To avoid mashing up the design of any given webpage, an appropriately sized rectangular placeholder will be inserted wherever an image load is deferred. Both foreground and background images will be deferred until they’re called upon by the user – when their screen scrolls near them and they become visible.

LazyLoad will be implemented on Android first, since “the benefits of LazyLoad will likely have the most impact on Android.” If this implementation is successful, other platforms will be considered. These other platforms include: everywhere else there’s a Chrome web browser.

The plan at the moment is to implement LazyLoad as an opt-out feature. Users will need to flip a switch if they do NOT want to use the feature, otherwise it’ll be on by default. Each individual webpage will have the ability to switch LazyLoad off, as well, with a string something like lazyload=on|off|auto in the page’s body tag.

Testing for LazyLoad will begin in the Chrome Dev app on Google Play if all goes as planned. Chromium developers S.Little, R.Ajendrant, and B.Engr are currently attached to this feature – and we’ll hopefully see it implemented on all Chrome browsers sooner than later.

Must Read Bits & Bytes