SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
Page Speed is Only the Beginning
VISIT-SPEED
1
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
In this presentation:
RESULTS & DISCUSSION
2
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
RESULTS & DISCUSSION
3
Peter McLachlan
chief architect & co-founder of Mobify
4
HUGE IMAGE WHERE
I INTRODUCE
MYSELF
5
6
WHAT IS
VISIT-SPEED?
7
• More than just a single metric.
• How your visitors interact with your website.
• We’re talking about all the waiting time that exists:
1. within pages, while visitors wait for interactive
elements to finish loading.
2. between pages, such as when visitors traverse
a checkout flow.
VISIT-SPEED IS...
8
THERE’S A LOT MORE TO USER
ENGAGEMENT THAN PAGE SPEED!
User engagement is about the experience.
• experience crosses the page boundary!
We need a heck of a lot more UX research on this subject.
• but you’re not here for a UX talk!
For now, an appeal to intuition: doesn’t it seems intuitive that
people care about the speed of the entire experience?
• first load is just one step along the way.
• rough guess: I’d say it’s 1/3rd of the puzzle or less.
9
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
RESULTS & DISCUSSION
10
You do.
You just don’t know how much yet.
11
If your users spend 8s waiting for a page to
load instead of 2, here is the impact:
1,992 hours/yr
19,920 hours/yr
199,200 hours/yr
How many pageviews do you get in a month?
100,000?
1,000,000?
10,000,000?
... or about a quarter of a human lifetime
12
73% of mobile internet users say they’ve
encountered a website that was too slow
to load.
Loading...
13
73% of mobile internet users say they’ve
encountered a website that was too slow
to load.
Data source: kissmetrics.com
Loading...
13
73% of mobile internet users say they’ve
encountered a website that was too slow
to load.
Data source: kissmetrics.com
Loading...
27% of internet users
are
LIARS
13
A 1 second delay in page
response can result in a 7%
reduction in conversions.
If an e-commerce site is making $100,000 per day,
a 1 second page delay could potentially cost you
$2.5 million in lost sales every year.
14
A 1 second delay in page
response can result in a 7%
reduction in conversions.
If an e-commerce site is making $100,000 per day,
a 1 second page delay could potentially cost you
$2.5 million in lost sales every year.
Data source: kissmetrics.com
14
15%
16%
16%
20%
30%
3%
16-20 seconds
1-5 seconds
11-15 seconds
20+ seconds
6-10 seconds
> One second
Data source: kissmetrics.com
PATIENCE OF
MOBILE WEB
USER
15
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
RESULTS & DISCUSSION
16
Two words for you: Ilya Grigorik (https://twitter.com/igrigorik)
• http://www.igvita.com/2013/01/15/faster-websites-crash-course-
on-web-performance/
But let me briefly recap:
1. Too many HTTP requests
2. High request latency
3. Too many bytes
4. Poor resource cache settings
5. Laggy interactions
LETS START WITH THIS:
WHAT MAKES PAGES SLOW?
(especially on mobile)
17
0Mbps
20Mbps
40Mbps
60Mbps
80Mbps
3Mbps
21Mbps
42Mbps
75Mbps
3G HSPA+ HSPA+ LTE
What’s interesting about this
18
0Mbps
20Mbps
40Mbps
60Mbps
80Mbps
3Mbps
21Mbps
42Mbps
75Mbps
3G HSPA+ HSPA+ LTE
What’s interesting about this
ABSOLUTELY
NOTHING
19
AND HERE’S WHY ...
Source: Ilya Grigorik
0
1000
2000
3000
4000
1mbps 3mbps 5mbps 7mbps 9mbps
0
1000
2000
3000
4000
240ms 200ms 160ms 120ms 80ms 40ms 0
Page load time (ms) as
latency (RTT) decreases
Page load time (ms) as
bandwidth increases
20
Why do we care a lot about latency on
mobile?
21
Mobile phone radio behaviour
22
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
RESULTS & DISCUSSION
23
Pre-fetch verb preeˈfech
To fetch web related resources before they are
required, the activity of which is to be
accomplished while the web browser is not
otherwise occupied, outside of the critical
rendering path of the page.
24
•When other performance optimizations have already been applied
•When your site has a flow
•When you use different resources on different pages of your site
• Of course this implies that you DON’T bundle all your JS into a single
file and deliver it in one go to the visitor
WHEN TO PRE-FETCH
25
Here’s what we need to think about
How should I
implement
pre-fetching?
What should I
pre-fetch?
PRE-FETCHING?
Do’s, Don’ts and
Test results
26
WHAT SHOULD
I PRE-FETCH?
27
PRE-FETCHING
What should we pre-fetch?
There are a number of assets available to choose from: HTML,
Images, CSS & JavaScript
HTML, Images
Most large sites have thousands or tens of thousands of pages &
images. Hard problem to solve, bad worst case scenario behavior
DNS, JavaScript & CSS
This makes a lot of sense. Most sites have just a few CSS files and
less than 100 externally referenced JavaScript
28
HTML & IMAGES
• HTML
• would be great to pre-fetch - but many sites have uncacheable content
embedded in page HTML or poor caching rules
• complexity of overcoming CMS / eComm platform defaults prohibitive
• Images
• Most sites have lots of them
• Images are 65% of bytes on the average web page
• Seems like a great target, but which ones should you send to the visitor?
• Machine learning may help us here
• But you better have great data on your site usage
• Maybe there’s lower hanging fruit...
29
DNS
• DNS is great to pre-fetch
• There’s usually less than 50 DNS entries to resolve for an
entire website
• The OS will cache these entries
• All DNS entries are cacheable, at least a little bit
• Not many sites with < 1 minute DNS cache times, most are
considerably longer
• There’s even a nice easy bit of markup we an use to do it:
• <link rel="dns-prefetch" href=”...”>
30
CSS & JAVASCRIPT
• CSS is blocking
• Definitely great to pre-fetch it!
• But a lot of sites use a single CSS file anyway
• So just make sure you have good caching rules on this
• If you do have multiple CSS files for different parts of your flow:
definitely pre-fetch them
• JavaScript: often this is also blocking
• I think JavaScript is the “holy grail” of pre-fetching
• With JS pre-fetch we have the possibility of significantly unblocking
parts of a visit flow
• You shouldn’t have too many JS files in your site (right?)
31
The winners: DNS, CSS & JAVASCRIPT
• OK, now how to select which items to pre-fetch?
• For DNS and CSS you can probably just “get all the things”
• DNS resolution is cheap with good caching behavior
• CSS should be relatively small
• JavaScript: you need a short list of items
most likely to be useful during normal visit flows
32
mobify.com @mobify hello@mobify.com
Pre-fetching
33
HOW SHOULD
I IMPLEMENT
PRE-FETCHING?
34
HOW SHOULD I IMPLEMENT
PRE-FETCHING?
Fully integrated into webapp
•You can fully integrate pre-fetching into your platform / app
•An introspection service can analyze log data, URL visits
•Inject pre-fetching directives directly into the HTML
35
Pros
•You can introspect your environment
•Data sources: filesystem, web server
log files, content database, platform
(CMS, ecomm etc) APIs
•Lots of CPU power at your disposal
HOW SHOULD I IMPLEMENT
PRE-FETCHING?
Fully integrated into webapp
Cons
•If you have a complex environment
with a CDN, multiple caching layers,
databases, web platforms, this is a
serious undertaking.
•Requires integration directly into your
platform, typically this means risk and
cost.
36
Client side generic ( With servier-side service)
HOW SHOULD I IMPLEMENT
PRE-FETCHING?
• What if I want to create a completely generic service
• It has no knowledge of my specific app or platform
• But it can still make good recommendations
• In this model clients:
• collect information about resources they see and report back
• inject requests for resources during periods of low activity
37
Client side generic (With server-side service)
HOW SHOULD I IMPLEMENT
PRE-FETCHING?
• What if I want to create a completely generic service
• It has no knowledge of my specific app or platform
• But it can still make good recommendations
• In this model clients:
• collect information about resources they see and report back
• inject requests for resources during periods of low activity
38
Client side generic ( With servier-side service)
HOW SHOULD I IMPLEMENT
PRE-FETCHING?
Pros
• You get accurate information on
what resources visitors are
actually using
• Server-side service is
independent of all the rest of
your architecture, plays nicely
with SoA
• If it breaks, your site still works
Cons
• We’ll get to this!
39
DO’S, DON’TS AND
TEST RESULTS
40
PRE-FETCHING:
THE DETAILS
• Caching:
• Divining cache content
• Aging out pre-fetched items
• edge cases
• Recommendation engine
• Considerations
• Mystery time!
• What I’m working on
41
CACHING: DIVINING CACHE
CONTENTS
Unfortunately we cannot inspect the browser’s cache
• (yes, there are ways to make guesses)
But we can just use localStorage directly, especially for
JavaScript and CSS that have relatively few bytes.
42
CACHING: DIVINING CACHE
CONTENTS
Unfortunately we cannot inspect the browser’s cache
• (yes, there are ways to make guesses)
But we can just use localStorage directly, especially for
JavaScript and CSS that have relatively few bytes.
... uh-oh ....
How fast is localStorage? Doesn’t it:
• block the rendering thread?
• have unbounded worst case performance?
42
Yes, and you should
use it anyway.
Details at: http://www.mobify.com/blog/smartphone-localstorage-outperforms-browser-cache/
43
CACHING & AGING
• You will need a mechanism to manage cache
eviction
• LRU looks to be a good simple algorithm to
implement here
• Perhaps augmented to provide preferential
treatment for smaller objects
44
CACHING: EDGE CASES
• Whoops. You just did a full site refresh...
• Dynamically generated resources:
• susan.js, bill.js, steve.js, candace.js ...
45
RECOMMENDATION ENGINE
• Could use a very simple algorithm:
• Collect all the things
• Return truncated list based on frequency seen
• How big a list?
• “empirically derived” = “make wild assed guess”
• ... and test.
• Site wide / global
• More sophisticated modifications:
• ML algorithm such as K-nearest neighbor
• Weight by inverse resource size
• Resources must decay
• simplest solution is probably correct
46
MYSTERY TIME!
Who can tell me what else we should worry about with
pre-fetching?
47
MYSTERY TIME!
Who can tell me what else we should worry about with
pre-fetching?
47
SO, WHAT ARE YOU WORKING ON?
• Service will provide:
• a data collection endpoint for resources to generate recommendations
• a recommendation engine for resources
• As visitors browse your site, refines preferences for which resources to pre-load
• The pre-fetch library provides client-side support for
• collecting information about the page
• recommendation engine
• auto optimizing JSONP resource retrieval service
• auto-caching system using localStorage with correct cache eviction behavior
Pre-fetching recommendation as a service
48
WHERE AM I AT?
• Beginning “clinical trials”
• Recommendation engine still under consideration
• Testing hand-curated recommendations in field trials on production sites
49
WHO AM I?
WHO CARES IF VISITS ARE SLOW?
WHY ARE VISITS SLOW?
PRE-FETCHING: Making Visit Faster
RESULTS & DISCUSSION
50
51
52
53
ETHICAL
CONSIDERATIONS
54
• Network bandwidth, CPU & battery are all resources with scarcity on
mobile
• So don't use them recklessly
• That's a good reason to focus on JS & CSS
• if your site has megs and megs of JS and CSS...
• what the heck are you doing!? Stop!
• limit your pre-fetching to one or two steps ahead
• Remember that using the radio when it's warm and then letting it sleep is
going to be better for battery than waking it up repeatedly
PRE-FETCHING CONSUMES RESOURCES
55
• Prefetching for HTML, images
• Much harder problems
• But solving them will have significant payoffs
WHAT’S NEXT?
56
@mobify | mobify.com | hello@mobify.com
@b1tr0t peter@mobify.com
57
Image credit: XKCD - “relativistic baseball”
No problem, we’ll make the speed of light faster
58

Mais conteúdo relacionado

Mais procurados

Minimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tipsMinimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tipsCgColors
 
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
Using Responsive Web Design To Make Your Web Work Everywhere - UpdatedUsing Responsive Web Design To Make Your Web Work Everywhere - Updated
Using Responsive Web Design To Make Your Web Work Everywhere - UpdatedChris Love
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testingSergeyChernyshev
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for ScalabilityTuenti
 
Introduction to web performance @ IEEE
Introduction to web performance @ IEEEIntroduction to web performance @ IEEE
Introduction to web performance @ IEEESergeyChernyshev
 
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)dpc
 
High Performance Mobile Web
High Performance Mobile WebHigh Performance Mobile Web
High Performance Mobile WebJames D Bloom
 
Lap Trinh Web Dong Voi Php & My Sql
Lap Trinh Web Dong Voi Php & My SqlLap Trinh Web Dong Voi Php & My Sql
Lap Trinh Web Dong Voi Php & My SqlSamQuiDaiBo
 
MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks
 
Web Hosting - What is it?
Web Hosting - What is it?Web Hosting - What is it?
Web Hosting - What is it?webhostingguy
 
SEO made simple - SCDL Presentation
SEO made simple - SCDL PresentationSEO made simple - SCDL Presentation
SEO made simple - SCDL PresentationTheWebMob
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance Dave Olsen
 
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationLife in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationDana DiTomaso
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed FundamentalsMartin Breest
 
How I learned to stop worrying and love UX metrics
How I learned to stop worrying and love UX metricsHow I learned to stop worrying and love UX metrics
How I learned to stop worrying and love UX metricsTammy Everts
 

Mais procurados (19)

Minimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tipsMinimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tips
 
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
Using Responsive Web Design To Make Your Web Work Everywhere - UpdatedUsing Responsive Web Design To Make Your Web Work Everywhere - Updated
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testing
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
 
Mobile web performance dwx13
Mobile web performance dwx13Mobile web performance dwx13
Mobile web performance dwx13
 
Keep the Web Fast
Keep the Web FastKeep the Web Fast
Keep the Web Fast
 
Introduction to web performance @ IEEE
Introduction to web performance @ IEEEIntroduction to web performance @ IEEE
Introduction to web performance @ IEEE
 
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
DPC2007 Case Study Zoom & Webwereld (Sander vd Graaf)
 
Apache performance
Apache performanceApache performance
Apache performance
 
High Performance Mobile Web
High Performance Mobile WebHigh Performance Mobile Web
High Performance Mobile Web
 
Lap Trinh Web Dong Voi Php & My Sql
Lap Trinh Web Dong Voi Php & My SqlLap Trinh Web Dong Voi Php & My Sql
Lap Trinh Web Dong Voi Php & My Sql
 
MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks - Why people hate to wait for your website to load (and how to f...
MeasureWorks - Why people hate to wait for your website to load (and how to f...
 
Magento Optimization Whitepaper
Magento Optimization WhitepaperMagento Optimization Whitepaper
Magento Optimization Whitepaper
 
Web Hosting - What is it?
Web Hosting - What is it?Web Hosting - What is it?
Web Hosting - What is it?
 
SEO made simple - SCDL Presentation
SEO made simple - SCDL PresentationSEO made simple - SCDL Presentation
SEO made simple - SCDL Presentation
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
 
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine OptimizationLife in the Fast Lane: Speed, Usability & Search Engine Optimization
Life in the Fast Lane: Speed, Usability & Search Engine Optimization
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed Fundamentals
 
How I learned to stop worrying and love UX metrics
How I learned to stop worrying and love UX metricsHow I learned to stop worrying and love UX metrics
How I learned to stop worrying and love UX metrics
 

Destaque

Nzima Nyika Foundation 31 03 09
Nzima Nyika Foundation 31 03 09Nzima Nyika Foundation 31 03 09
Nzima Nyika Foundation 31 03 09melissagmoye
 
C Legal Governance
C Legal GovernanceC Legal Governance
C Legal Governancemelissagmoye
 
Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09melissagmoye
 
Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09melissagmoye
 
Oliveira Ctf Creation Mozambique 31 03 09
Oliveira Ctf Creation Mozambique 31 03 09Oliveira Ctf Creation Mozambique 31 03 09
Oliveira Ctf Creation Mozambique 31 03 09melissagmoye
 

Destaque (8)

Nzima Nyika Foundation 31 03 09
Nzima Nyika Foundation 31 03 09Nzima Nyika Foundation 31 03 09
Nzima Nyika Foundation 31 03 09
 
C Legal Governance
C Legal GovernanceC Legal Governance
C Legal Governance
 
Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09
 
H Communications
H CommunicationsH Communications
H Communications
 
D Operations
D OperationsD Operations
D Operations
 
Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09Akerboom Kasanka Trust 02 04 09
Akerboom Kasanka Trust 02 04 09
 
Oliveira Ctf Creation Mozambique 31 03 09
Oliveira Ctf Creation Mozambique 31 03 09Oliveira Ctf Creation Mozambique 31 03 09
Oliveira Ctf Creation Mozambique 31 03 09
 
F M&E
F M&EF M&E
F M&E
 

Semelhante a BD Conf: Visit speed - Page speed is only the beginning

Tips tricks deliver_high_performing_secure_web_pages
Tips tricks deliver_high_performing_secure_web_pagesTips tricks deliver_high_performing_secure_web_pages
Tips tricks deliver_high_performing_secure_web_pagesAditya Singh
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperOfer Zelig
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performanceSagar Desarda
 
Proven ways to improve your website performance optimizing front end and back...
Proven ways to improve your website performance optimizing front end and back...Proven ways to improve your website performance optimizing front end and back...
Proven ways to improve your website performance optimizing front end and back...Katy Slemon
 
10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App Today10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App TodayChris Love
 
10 things you can do to speed up your web app today stir trek edition
10 things you can do to speed up your web app today   stir trek edition10 things you can do to speed up your web app today   stir trek edition
10 things you can do to speed up your web app today stir trek editionChris Love
 
Testing Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksTesting Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksAcquia
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishKoombea
 
WebHosting Performance / WordPress - Pubcon Vegas - Hendison
WebHosting Performance / WordPress  - Pubcon Vegas - HendisonWebHosting Performance / WordPress  - Pubcon Vegas - Hendison
WebHosting Performance / WordPress - Pubcon Vegas - HendisonSearch Commander, Inc.
 
WPblog's Ultimate WordPress Guide to Boost Your Website Performance
WPblog's Ultimate WordPress Guide to Boost Your Website Performance WPblog's Ultimate WordPress Guide to Boost Your Website Performance
WPblog's Ultimate WordPress Guide to Boost Your Website Performance Jessica Ervin
 
Build your own analytics power tools
Build your own analytics power toolsBuild your own analytics power tools
Build your own analytics power toolsAlban Gérôme
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)bcantrill
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013hernanibf
 
Rise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRafael Casuso Romate
 
Developing and deploying a website with html5
Developing and deploying a website with html5Developing and deploying a website with html5
Developing and deploying a website with html5Chris Love
 
2020 Chrome Dev Summit: Web Performance 101
2020 Chrome Dev Summit: Web Performance 1012020 Chrome Dev Summit: Web Performance 101
2020 Chrome Dev Summit: Web Performance 101Tammy Everts
 
Clientside vs Serverside - SEO
Clientside vs Serverside  - SEOClientside vs Serverside  - SEO
Clientside vs Serverside - SEOAli Haris
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 

Semelhante a BD Conf: Visit speed - Page speed is only the beginning (20)

Tips tricks deliver_high_performing_secure_web_pages
Tips tricks deliver_high_performing_secure_web_pagesTips tricks deliver_high_performing_secure_web_pages
Tips tricks deliver_high_performing_secure_web_pages
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
 
Proven ways to improve your website performance optimizing front end and back...
Proven ways to improve your website performance optimizing front end and back...Proven ways to improve your website performance optimizing front end and back...
Proven ways to improve your website performance optimizing front end and back...
 
10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App Today10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App Today
 
10 things you can do to speed up your web app today stir trek edition
10 things you can do to speed up your web app today   stir trek edition10 things you can do to speed up your web app today   stir trek edition
10 things you can do to speed up your web app today stir trek edition
 
Testing Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksTesting Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and Networks
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
WebHosting Performance / WordPress - Pubcon Vegas - Hendison
WebHosting Performance / WordPress  - Pubcon Vegas - HendisonWebHosting Performance / WordPress  - Pubcon Vegas - Hendison
WebHosting Performance / WordPress - Pubcon Vegas - Hendison
 
WPblog's Ultimate WordPress Guide to Boost Your Website Performance
WPblog's Ultimate WordPress Guide to Boost Your Website Performance WPblog's Ultimate WordPress Guide to Boost Your Website Performance
WPblog's Ultimate WordPress Guide to Boost Your Website Performance
 
Build your own analytics power tools
Build your own analytics power toolsBuild your own analytics power tools
Build your own analytics power tools
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013
 
Rise and Fall of the Frontend Developer
Rise and Fall of the Frontend DeveloperRise and Fall of the Frontend Developer
Rise and Fall of the Frontend Developer
 
Developing and deploying a website with html5
Developing and deploying a website with html5Developing and deploying a website with html5
Developing and deploying a website with html5
 
2020 Chrome Dev Summit: Web Performance 101
2020 Chrome Dev Summit: Web Performance 1012020 Chrome Dev Summit: Web Performance 101
2020 Chrome Dev Summit: Web Performance 101
 
Clientside vs Serverside - SEO
Clientside vs Serverside  - SEOClientside vs Serverside  - SEO
Clientside vs Serverside - SEO
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Responsive Design
Responsive DesignResponsive Design
Responsive Design
 

Último

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

BD Conf: Visit speed - Page speed is only the beginning

  • 1. Page Speed is Only the Beginning VISIT-SPEED 1
  • 2. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster In this presentation: RESULTS & DISCUSSION 2
  • 3. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster RESULTS & DISCUSSION 3
  • 4. Peter McLachlan chief architect & co-founder of Mobify 4
  • 5. HUGE IMAGE WHERE I INTRODUCE MYSELF 5
  • 6. 6
  • 8. • More than just a single metric. • How your visitors interact with your website. • We’re talking about all the waiting time that exists: 1. within pages, while visitors wait for interactive elements to finish loading. 2. between pages, such as when visitors traverse a checkout flow. VISIT-SPEED IS... 8
  • 9. THERE’S A LOT MORE TO USER ENGAGEMENT THAN PAGE SPEED! User engagement is about the experience. • experience crosses the page boundary! We need a heck of a lot more UX research on this subject. • but you’re not here for a UX talk! For now, an appeal to intuition: doesn’t it seems intuitive that people care about the speed of the entire experience? • first load is just one step along the way. • rough guess: I’d say it’s 1/3rd of the puzzle or less. 9
  • 10. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster RESULTS & DISCUSSION 10
  • 11. You do. You just don’t know how much yet. 11
  • 12. If your users spend 8s waiting for a page to load instead of 2, here is the impact: 1,992 hours/yr 19,920 hours/yr 199,200 hours/yr How many pageviews do you get in a month? 100,000? 1,000,000? 10,000,000? ... or about a quarter of a human lifetime 12
  • 13. 73% of mobile internet users say they’ve encountered a website that was too slow to load. Loading... 13
  • 14. 73% of mobile internet users say they’ve encountered a website that was too slow to load. Data source: kissmetrics.com Loading... 13
  • 15. 73% of mobile internet users say they’ve encountered a website that was too slow to load. Data source: kissmetrics.com Loading... 27% of internet users are LIARS 13
  • 16. A 1 second delay in page response can result in a 7% reduction in conversions. If an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost you $2.5 million in lost sales every year. 14
  • 17. A 1 second delay in page response can result in a 7% reduction in conversions. If an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost you $2.5 million in lost sales every year. Data source: kissmetrics.com 14
  • 18. 15% 16% 16% 20% 30% 3% 16-20 seconds 1-5 seconds 11-15 seconds 20+ seconds 6-10 seconds > One second Data source: kissmetrics.com PATIENCE OF MOBILE WEB USER 15
  • 19. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster RESULTS & DISCUSSION 16
  • 20. Two words for you: Ilya Grigorik (https://twitter.com/igrigorik) • http://www.igvita.com/2013/01/15/faster-websites-crash-course- on-web-performance/ But let me briefly recap: 1. Too many HTTP requests 2. High request latency 3. Too many bytes 4. Poor resource cache settings 5. Laggy interactions LETS START WITH THIS: WHAT MAKES PAGES SLOW? (especially on mobile) 17
  • 22. 0Mbps 20Mbps 40Mbps 60Mbps 80Mbps 3Mbps 21Mbps 42Mbps 75Mbps 3G HSPA+ HSPA+ LTE What’s interesting about this ABSOLUTELY NOTHING 19
  • 23. AND HERE’S WHY ... Source: Ilya Grigorik 0 1000 2000 3000 4000 1mbps 3mbps 5mbps 7mbps 9mbps 0 1000 2000 3000 4000 240ms 200ms 160ms 120ms 80ms 40ms 0 Page load time (ms) as latency (RTT) decreases Page load time (ms) as bandwidth increases 20
  • 24. Why do we care a lot about latency on mobile? 21
  • 25. Mobile phone radio behaviour 22
  • 26. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster RESULTS & DISCUSSION 23
  • 27. Pre-fetch verb preeˈfech To fetch web related resources before they are required, the activity of which is to be accomplished while the web browser is not otherwise occupied, outside of the critical rendering path of the page. 24
  • 28. •When other performance optimizations have already been applied •When your site has a flow •When you use different resources on different pages of your site • Of course this implies that you DON’T bundle all your JS into a single file and deliver it in one go to the visitor WHEN TO PRE-FETCH 25
  • 29. Here’s what we need to think about How should I implement pre-fetching? What should I pre-fetch? PRE-FETCHING? Do’s, Don’ts and Test results 26
  • 31. PRE-FETCHING What should we pre-fetch? There are a number of assets available to choose from: HTML, Images, CSS & JavaScript HTML, Images Most large sites have thousands or tens of thousands of pages & images. Hard problem to solve, bad worst case scenario behavior DNS, JavaScript & CSS This makes a lot of sense. Most sites have just a few CSS files and less than 100 externally referenced JavaScript 28
  • 32. HTML & IMAGES • HTML • would be great to pre-fetch - but many sites have uncacheable content embedded in page HTML or poor caching rules • complexity of overcoming CMS / eComm platform defaults prohibitive • Images • Most sites have lots of them • Images are 65% of bytes on the average web page • Seems like a great target, but which ones should you send to the visitor? • Machine learning may help us here • But you better have great data on your site usage • Maybe there’s lower hanging fruit... 29
  • 33. DNS • DNS is great to pre-fetch • There’s usually less than 50 DNS entries to resolve for an entire website • The OS will cache these entries • All DNS entries are cacheable, at least a little bit • Not many sites with < 1 minute DNS cache times, most are considerably longer • There’s even a nice easy bit of markup we an use to do it: • <link rel="dns-prefetch" href=”...”> 30
  • 34. CSS & JAVASCRIPT • CSS is blocking • Definitely great to pre-fetch it! • But a lot of sites use a single CSS file anyway • So just make sure you have good caching rules on this • If you do have multiple CSS files for different parts of your flow: definitely pre-fetch them • JavaScript: often this is also blocking • I think JavaScript is the “holy grail” of pre-fetching • With JS pre-fetch we have the possibility of significantly unblocking parts of a visit flow • You shouldn’t have too many JS files in your site (right?) 31
  • 35. The winners: DNS, CSS & JAVASCRIPT • OK, now how to select which items to pre-fetch? • For DNS and CSS you can probably just “get all the things” • DNS resolution is cheap with good caching behavior • CSS should be relatively small • JavaScript: you need a short list of items most likely to be useful during normal visit flows 32
  • 38. HOW SHOULD I IMPLEMENT PRE-FETCHING? Fully integrated into webapp •You can fully integrate pre-fetching into your platform / app •An introspection service can analyze log data, URL visits •Inject pre-fetching directives directly into the HTML 35
  • 39. Pros •You can introspect your environment •Data sources: filesystem, web server log files, content database, platform (CMS, ecomm etc) APIs •Lots of CPU power at your disposal HOW SHOULD I IMPLEMENT PRE-FETCHING? Fully integrated into webapp Cons •If you have a complex environment with a CDN, multiple caching layers, databases, web platforms, this is a serious undertaking. •Requires integration directly into your platform, typically this means risk and cost. 36
  • 40. Client side generic ( With servier-side service) HOW SHOULD I IMPLEMENT PRE-FETCHING? • What if I want to create a completely generic service • It has no knowledge of my specific app or platform • But it can still make good recommendations • In this model clients: • collect information about resources they see and report back • inject requests for resources during periods of low activity 37
  • 41. Client side generic (With server-side service) HOW SHOULD I IMPLEMENT PRE-FETCHING? • What if I want to create a completely generic service • It has no knowledge of my specific app or platform • But it can still make good recommendations • In this model clients: • collect information about resources they see and report back • inject requests for resources during periods of low activity 38
  • 42. Client side generic ( With servier-side service) HOW SHOULD I IMPLEMENT PRE-FETCHING? Pros • You get accurate information on what resources visitors are actually using • Server-side service is independent of all the rest of your architecture, plays nicely with SoA • If it breaks, your site still works Cons • We’ll get to this! 39
  • 44. PRE-FETCHING: THE DETAILS • Caching: • Divining cache content • Aging out pre-fetched items • edge cases • Recommendation engine • Considerations • Mystery time! • What I’m working on 41
  • 45. CACHING: DIVINING CACHE CONTENTS Unfortunately we cannot inspect the browser’s cache • (yes, there are ways to make guesses) But we can just use localStorage directly, especially for JavaScript and CSS that have relatively few bytes. 42
  • 46. CACHING: DIVINING CACHE CONTENTS Unfortunately we cannot inspect the browser’s cache • (yes, there are ways to make guesses) But we can just use localStorage directly, especially for JavaScript and CSS that have relatively few bytes. ... uh-oh .... How fast is localStorage? Doesn’t it: • block the rendering thread? • have unbounded worst case performance? 42
  • 47. Yes, and you should use it anyway. Details at: http://www.mobify.com/blog/smartphone-localstorage-outperforms-browser-cache/ 43
  • 48. CACHING & AGING • You will need a mechanism to manage cache eviction • LRU looks to be a good simple algorithm to implement here • Perhaps augmented to provide preferential treatment for smaller objects 44
  • 49. CACHING: EDGE CASES • Whoops. You just did a full site refresh... • Dynamically generated resources: • susan.js, bill.js, steve.js, candace.js ... 45
  • 50. RECOMMENDATION ENGINE • Could use a very simple algorithm: • Collect all the things • Return truncated list based on frequency seen • How big a list? • “empirically derived” = “make wild assed guess” • ... and test. • Site wide / global • More sophisticated modifications: • ML algorithm such as K-nearest neighbor • Weight by inverse resource size • Resources must decay • simplest solution is probably correct 46
  • 51. MYSTERY TIME! Who can tell me what else we should worry about with pre-fetching? 47
  • 52. MYSTERY TIME! Who can tell me what else we should worry about with pre-fetching? 47
  • 53. SO, WHAT ARE YOU WORKING ON? • Service will provide: • a data collection endpoint for resources to generate recommendations • a recommendation engine for resources • As visitors browse your site, refines preferences for which resources to pre-load • The pre-fetch library provides client-side support for • collecting information about the page • recommendation engine • auto optimizing JSONP resource retrieval service • auto-caching system using localStorage with correct cache eviction behavior Pre-fetching recommendation as a service 48
  • 54. WHERE AM I AT? • Beginning “clinical trials” • Recommendation engine still under consideration • Testing hand-curated recommendations in field trials on production sites 49
  • 55. WHO AM I? WHO CARES IF VISITS ARE SLOW? WHY ARE VISITS SLOW? PRE-FETCHING: Making Visit Faster RESULTS & DISCUSSION 50
  • 56. 51
  • 57. 52
  • 58. 53
  • 60. • Network bandwidth, CPU & battery are all resources with scarcity on mobile • So don't use them recklessly • That's a good reason to focus on JS & CSS • if your site has megs and megs of JS and CSS... • what the heck are you doing!? Stop! • limit your pre-fetching to one or two steps ahead • Remember that using the radio when it's warm and then letting it sleep is going to be better for battery than waking it up repeatedly PRE-FETCHING CONSUMES RESOURCES 55
  • 61. • Prefetching for HTML, images • Much harder problems • But solving them will have significant payoffs WHAT’S NEXT? 56
  • 62. @mobify | mobify.com | hello@mobify.com @b1tr0t peter@mobify.com 57
  • 63. Image credit: XKCD - “relativistic baseball” No problem, we’ll make the speed of light faster 58