Page Speed Optimization Libraries  1.7.30.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Static Public Attributes
net_instaweb::LazyloadImagesFilter Class Reference

#include "lazyload_images_filter.h"

Inheritance diagram for net_instaweb::LazyloadImagesFilter:
net_instaweb::CommonFilter

List of all members.

Public Member Functions

 LazyloadImagesFilter (RewriteDriver *driver)
virtual const char * Name () const

Static Public Member Functions

static void InitStats (Statistics *statistics)
static void Terminate ()
static
RewriterHtmlApplication::Status 
ShouldApply (RewriteDriver *driver)
 Lazyload filter will be no op for the request if ShouldApply returns false.
static GoogleString GetLazyloadJsSnippet (const RewriteOptions *options, StaticAssetManager *static_asset_manager)

Static Public Attributes

static const char * kImageLazyloadCode
static const char * kImageOnloadCode
static const char * kLoadAllImages
static const char * kOverrideAttributeFunctions
static const char * kIsLazyloadScriptInsertedPropertyName

Detailed Description

Filter to lazyload images by replacing the src with a pagespeed_lazy_src attribute and injecting a javascript to detect which images are in the user's viewport and swapping the src back.

This filter only works if the document has a head. It adds some javascript to the head that determines if an image is visible and adds a listener to the window scroll event. If an image is visible, it replaces the src and the pagespeed_lazy_src attributes.

In order to immediately load images that are above the fold, we attach an onload event to each image. This onload event determines if the image is visible and immediately replaces the src with the pagespeed_lazy_src. Otherwise, the image is added to the deferred queue. Since the onload event is only fired if the image src is valid, we add a fixed inlined image to each image node we are deferring.

When the user scrolls, we scan through the deferred queue and determine which images are now visible, and switch the src and pagespeed_lazy_src.

Given the following input html: <html> <head> </head> <body>

</body> </html>

The output will be <html> <head> <script> Javascript that determines which images are visible and attaches a window.scroll event. </script> </head> <body>

</body>


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines