Hacking Web Performance @ ForwardJS 2017
-
Upload
maximiliano-firtman -
Category
Technology
-
view
508 -
download
0
Transcript of Hacking Web Performance @ ForwardJS 2017
![Page 1: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/1.jpg)
Picture from Simon Howden freedigitalphotos.net!
Picture from Simon Howden freedigitalphotos.net!
hacking web performance
Max Firtman @firt
![Page 2: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/2.jpg)
mobile+web developer & trainer
![Page 3: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/3.jpg)
😬
![Page 4: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/4.jpg)
![Page 5: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/5.jpg)
![Page 6: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/6.jpg)
![Page 7: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/7.jpg)
I have 2 goals…
![Page 8: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/8.jpg)
Show you new tricks 😁
![Page 9: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/9.jpg)
Make you feel bad
![Page 10: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/10.jpg)
Let’s Start!
![Page 11: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/11.jpg)
I know you know
![Page 12: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/12.jpg)
http://www.flickr.com/photos/steenslag/22689920/-borrowedfromSteveSouders
![Page 14: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/14.jpg)
14
Picture from Simon Howden freedigitalphotos.net
![Page 15: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/15.jpg)
500ms delay, +26% user’s frustration
Source: Radware
:(
![Page 16: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/16.jpg)
500ms delay, -20% Google’s traffic
1http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt
:(
![Page 17: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/17.jpg)
+100ms delay, -1% Amazon’s sales
1http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt
:(
![Page 18: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/18.jpg)
immediate feedback 100ms
perception
Jakob Nielsen - Usability Engineering
![Page 19: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/19.jpg)
perception
Jakob Nielsen - Usability Engineering
losing flow of thoughts 1s
![Page 20: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/20.jpg)
perception
Source: Google Developers
RAIL
![Page 21: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/21.jpg)
perception
RAIL
100ms
![Page 22: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/22.jpg)
perception
RAIL
100ms 16ms
![Page 23: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/23.jpg)
perception
RAIL
100ms 16ms 50ms
![Page 24: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/24.jpg)
perception
RAIL
100ms 16ms 50ms 1s
![Page 25: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/25.jpg)
![Page 26: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/26.jpg)
I know you know
Performance is important We need a great Speed Index We have a budget of 1 second to load
![Page 27: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/27.jpg)
You are already…
![Page 28: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/28.jpg)
Optimizing the network
You are already
![Page 29: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/29.jpg)
CSS as Appetizer
You are already
![Page 30: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/30.jpg)
JavaScript as Dessert
You are already
![Page 31: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/31.jpg)
Optimizing Images
You are already
![Page 32: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/32.jpg)
Have an HTTP Cache Policy
You are already
![Page 33: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/33.jpg)
Using Service Workers
You are already
![Page 34: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/34.jpg)
Avoiding Redirects
You are already
![Page 35: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/35.jpg)
Working with TLS and HTTP/2
You are already
![Page 36: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/36.jpg)
You are already doing this
![Page 37: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/37.jpg)
What’s the problem then?
![Page 38: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/38.jpg)
Average time to load a mobile landing page
The problem
22 seconds Research by thinkwithgoogle.com
![Page 39: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/39.jpg)
If a page takes more than 3 seconds to load
The problem
53% leave it Research by thinkwithgoogle.com
![Page 40: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/40.jpg)
The problem
![Page 41: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/41.jpg)
The problem
AMP Facebook Instant Articles
![Page 42: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/42.jpg)
The problem
We always underestimate
mobile
![Page 43: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/43.jpg)
iOS and Android
![Page 44: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/44.jpg)
Safari and Chrome?
![Page 45: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/45.jpg)
Source: MOVR Report
![Page 46: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/46.jpg)
browsers with market share
![Page 47: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/47.jpg)
Using Cellular Networks!
![Page 48: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/48.jpg)
We have 4G! We don't need to worry about performance...
(
)
![Page 49: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/49.jpg)
cellular
0
25
50
75
100
US Western Europe Asia Global
4G 2G/3G
Only 21% is on 4G, worldwide
![Page 50: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/50.jpg)
cellular
![Page 51: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/51.jpg)
cellular
45% of users are on 2G networks
![Page 52: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/52.jpg)
cellular
0
25
50
75
100
US Western Europe Asia Global
4G 2G/3G
~30% of the time 4G was not used
![Page 53: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/53.jpg)
RTT - latencycellular networks
2G
3G
4G
Home
0 250 500 750 1000
Min Max
![Page 54: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/54.jpg)
Let’s hack Web Performance!
![Page 55: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/55.jpg)
Hack First Load
![Page 56: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/56.jpg)
Avoid more than one roundtrip
First Load
![Page 57: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/57.jpg)
Deliver ATF in 14Kb
First Load
• Embed all CSS and JavaScript needed • If space, embed logo and/or low-res images
![Page 58: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/58.jpg)
Announce DNS queries ASAP
First Load
<link rel="dns-prefetch" href="http://newdomain.com">
HTML
![Page 59: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/59.jpg)
Avoid http to httpS redirect
First Load
• Use HSTS (HTTP Strict Transport Security) • Header • Opt-in at hstspreload.org
![Page 60: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/60.jpg)
Hack Data Transfer
![Page 61: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/61.jpg)
Use Zopfli
Data Transfer
• Save 4-8% data transfer with GZIP • It’s ~80x slower
![Page 62: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/62.jpg)
Use Brotli
Data Transfer
• Save ~14% data transfer • Check Encoding Header
![Page 63: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/63.jpg)
Create a low-res version
Data Transfer
• Check save-data Client Hint header • Use NetInfo API • Use Performance Timing API • Measure bandwidth
![Page 64: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/64.jpg)
![Page 65: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/65.jpg)
Embrace Responsive Images
Data Transfer
• Not just 3 versions of your image • 65% of the traffic is for images (HttpArchive)
• 84% improvement creating n versions (ScientiaMobile)
![Page 66: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/66.jpg)
Hack Images
![Page 67: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/67.jpg)
http://www.flickr.com/photos/steenslag/22689920/-borrowedfromSteveSouders
A picture is worth a thousand words…
![Page 68: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/68.jpg)
… if it loads
![Page 69: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/69.jpg)
Time to replace JPEG and PNG
Images
![Page 70: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/70.jpg)
![Page 71: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/71.jpg)
Lossy format: WebP -35%
Images
![Page 72: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/72.jpg)
Lossy format: JPEG 2000 (JPX) -19%
Images
![Page 73: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/73.jpg)
Lossy format: JPEG XR (JXR) -29%
Images
![Page 74: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/74.jpg)
Lossless format: Zopfli PNG
https://github.com/imagemin/zopflipng-bin
-20%
Images
![Page 75: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/75.jpg)
Deal with compatibility!
Images
• Hello to <picture>
![Page 76: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/76.jpg)
<picture>
<source type="image/webp" src="image.webp"><source type="image/vnd.ms-photo" src="image.jxr"><source type="image/jp2" src="image.jp2"><source type="image/png" src=“image.zf.png"><img src=“image.zf.png" alt=“description">
</picture>
![Page 77: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/77.jpg)
Meet HTTP Client Hints
Images
• Browser will expose data to the server<meta http-equiv="Accept-CH" content="DPR, Viewport-Width, Downlink">
HTML
![Page 78: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/78.jpg)
Decode images in the background
Images
• github.com/GoogleChrome/offthread-image
![Page 79: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/79.jpg)
Stop using Animated GIFs!
Images
• Use Animated PNGs or Animated WebP • Use muted videos • Use webkit-playsinline for iOS
![Page 80: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/80.jpg)
Use tricks for Preview Images
Images
![Page 81: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/81.jpg)
![Page 82: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/82.jpg)
Images
![Page 83: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/83.jpg)
The future looks interesting!
Images
• BPG • FLIF
![Page 84: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/84.jpg)
Hack Limitsthanks to Service Workers
![Page 85: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/85.jpg)
Make CDNs race for performance
Limits
![Page 86: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/86.jpg)
Delta Updates
Limits
![Page 87: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/87.jpg)
Use Streams
Limits
![Page 88: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/88.jpg)
Your own Compression Method
Limits
![Page 89: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/89.jpg)
Progressive Images
Limits
![Page 90: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/90.jpg)
Use BPG Today!
Limits
https://github.com/sandropaganotti/bpg-converter
![Page 91: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/91.jpg)
![Page 92: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/92.jpg)
Feeling bad enough?
![Page 93: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/93.jpg)
Performance is TOP PRIORITY Push it even more It’s a worthwhile effort
![Page 94: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/94.jpg)
Make it fast!
![Page 95: Hacking Web Performance @ ForwardJS 2017](https://reader034.fdocuments.net/reader034/viewer/2022051707/58ce9b841a28ab8c3b8b76eb/html5/thumbnails/95.jpg)
Foto de freefoto.com
[email protected]@firt
firt.mobi/hpmw
Next Forward workshopsProgressive Web AppsNew Web APIs Lab: VR, BT, PaymentsApps with TypeScript and Angular