System to Identify and Elide Superfluous JavaScript Code for Faster Webpage Loads

03/16/2020
by   Utkarsh Goel, et al.
0

Many websites import large JavaScript (JS) libraries to customize and enhance user experiences. Our data shows that many JS libraries are only partially utilized during a page load, and therefore, contain superfluous code that is never executed. Many top-ranked websites contain up to hundreds of kilobytes of compressed superfluous code and a JS resource on a median page contains 31 superfluous code. Superfluous JS code inflates the page weight, and thereby, the time to download, parse, and compile a JS resource. It is therefore important to monitor the usage and optimize the payload of JS resources to improve Web performance. However, given that the webpage design and functionality could depend on a user's preferences or device, among many other factors, actively loading webpages in controlled environments cannot cover all possible conditions in which webpage content and functionality changes. In this paper, we show that passive measurement techniques, such as real user monitoring systems (RUM), that monitor the performance of real user page loads under different conditions can be leveraged to identify superfluous code. Using a custom man-in-the-middle proxy (similar to a content delivery network's proxy server), we designed a systematic approach for website developers that relies on pages loaded by real users to passively identify superfluous code on JS resources. We then elide any superfluous code from JS resources before subsequent page load requests. Our data shows that eliding superfluous JS code improves the median page load time by 5 long tail. Through results presented in this paper, we motivate for the need for rigorous monitoring of the usage of JS resources under different real world conditions, with the goal to improve Web performance.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/15/2021

Muzeel: A Dynamic JavaScript Analyzer for Dead Code Elimination in Today's Web

JavaScript contributes to the increasing complexity of today's web. To s...
research
02/22/2018

Investigating the Evolvability of Web Page Load Time

Client-side Javascript execution environments (browsers) allow anonymous...
research
04/08/2020

How Crisp is the Crease? A Subjective Study on Web Browsing Perception of Above-The-Fold

Quality of Experience (QoE) for various types of websites has gained sig...
research
07/12/2022

A study of HTTP/2's Server Push Performance Potential

Modern web pages have complex structures comprised of up to hundreds of ...
research
06/14/2022

Random Access Concatenated Libraries and dd enable a short-latency high-content website on an inexpensive shared server

Content-rich websites typically house their images as individual files o...
research
09/25/2018

DRIVESHAFT: Improving Perceived Mobile Web Performance

With mobiles overtaking desktops as the primary vehicle of Internet cons...
research
08/28/2021

TrackerSift: Untangling Mixed Tracking and Functional Web Resources

Trackers have recently started to mix tracking and functional resources ...

Please sign up or login with your details

Forgot password? Click here to reset