The Cost of Javascript

Kalil de Lima

The Montevideo JavaScript Meetup

Based on "The cost of Javascript at 2019" by Addy Osmani

kalil@rootstrap.com

github.com/kaozdl

 

Why is my SITE Slow?

Main Offenders

  • Bad Code
  • Slow CPU
  • Slow Internet

We CAN ONLY FIX The First ONE

And IN The meantime Work arround the REST

Let's See some Quick Stats

But This IS NoT A Problem FOR OUR CLIENTS RIGHT?

ACTUALLY IT IS

Javascript is the most Expensive Part of our Sites

  • Not CSS

  • NOT IMAGES

  • NOT FONTS

TIME TO INTERACT (TTI)

AN AVERAGE WEBSITE SHIPS AROUND 360KB of JAVASCRIPT

  • CNN 2.6 MB

  • Youtube 1.1 MB

  • GOOGLE DOcs 2.3 MB

  • FAcebook 6.0 MB

  • LinkeDIN 7.2 MB

 THE CONTENTS OF THE AVERAGE JS BUNDLE

WHat happens while we load a site?

MAIN THREAD PARSE/COMPILE

MAIN THREAD PARSE/COMPILE

HOW TO MITIGATE THIS?

  • REDUCING HOW MUCH JS iS BEING SHIPPED

  • SPLITTING LARGE BUNDLES INTO SMALLER CHUNKS

  • AVOIDING LARGE inline SCRIPTS

DOWNLOAD TIMES ARE CRITICAL FOR SLOW NETWORKS

JS EXECUTION TIME IS CRITICAL FOR PHONES WITH SLOW CPUS

COST OF JS DURING PAGE LOAD

HOW DO WE SPLIT OUR JAVASCRIPT?

Split by page

Split by route

Split by component

Split large bundles into smaller ones

Don'T ALLOW LARGE IMPORTS

DON'T USE A FRAMEWORK WHERE IS NOT NEEDED

MAKE PERFORMANCE PART OF THE CONVERSATION ON A DAILY BASIS

  • USE TTI AS A METRIC

  • PUT A GOAL ON BUNDLE SIZES

  • ADD RULES TO GUIDE OTHER PEOPLE IN WHAT TO IMPORT

ALWAYS TEST ON REAL PHONES WITH REAL NETWORKS

THANKS FOR LISTENING!

The cost of JavaScript

By Kalil De Lima

The cost of JavaScript

  • 240