SlideShare ist ein Scribd-Unternehmen logo
1 von 42
THIRD PARTY PERFORMANCE

Guy Podjarny (@guypod)
CTO, Web Experience, Akamai

Faster ForwardTM

©2013 Akamai
What’s a third party?

- Not a 1st Party?
- Infrastructure & code managed by someone else
- What’s not a 3rd party:
-

Reused Software (e.g. jQuery, Apache) – premium or free
Commercial Hardware (e.g. ADC, WAF)
Cloud Provider (e.g. AWS)
CDN (e.g. Akamai)

Faster ForwardTM

©2013 Akamai
Where are the third parties?

- A tag on the page
- Analytics/trackers - invisible
- Image Tags & Scripts
- Non-critical page components (e.g. Share buttons, Get feedback…)
- Critical Page Components (A/B Testing, Shopping Cart
Personalization, Ads(?)..)

- An inline Cloud proxy (e.g. MotionPoint, SiteSpect)

Faster ForwardTM

©2013 Akamai
# Domains Per Page

Sep 2013 Percentiles:
- 25th : 4 domains
- 50th : 10 domains
- 75th : 21 domains
- 90th : 36 domains

Faster ForwardTM

©2013 Akamai
Ghostery Data - Media

Faster ForwardTM

©2013 Akamai
Ghostery Data - Retail

Faster ForwardTM

©2013 Akamai
3rd Party Extravaganza!

Faster ForwardTM

©2013 Akamai
Airbnb Home Page

Faster ForwardTM

©2013 Akamai
Airbnb Location Page

Faster ForwardTM

©2013 Akamai
Why Should you Care? (from a performance perspective)

- Single Point of Failure – SPOF
- Scripts block rendering of everything below them

- Delayed load event
- Users see progress indicators for longer
- Other deferred actions get delayed - e.g. $.ready(myfunc)

- Delayed 1st party scripts
- Resource Contention
- Battery Consumption (on mobile)

Faster ForwardTM

©2013 Akamai
SPOF
Home Page, Optimizely & Truste Down

Business Week, Truste Down

Faster ForwardTM

22 Secs

45 Secs

22 Secs

©2013 Akamai
SPOF – Not Only Your Homepage

Category Page, BazaarVoice down

Faster ForwardTM

23 Secs

©2013 Akamai
Airbnb.ca homepage: SPOF delays late actions

Faster ForwardTM

©2013 Akamai
New York Page

Faster ForwardTM

©2013 Akamai
New York Page SPOF

Faster ForwardTM

©2013 Akamai
The 1st Party Arsenal

- Async
- Delay onload (async att) vs don’t delay onload (IFrame)

- Defer Execution
- Defer Download
- Remove Tag

Faster ForwardTM

©2013 Akamai
Analytics & Beacons

- Goal: Async without delaying onload
- Shouldn’t delay visible content
- Defer not great since it’s likely to miss users

Faster ForwardTM

©2013 Akamai
Beacons that don’t delay onload

Faster ForwardTM

©2013 Akamai
Beacons that don’t delay onload

Faster ForwardTM

©2013 Akamai
Q: Do Script-Inserted Beacon Images Delay Onload?
http://stevesouders.com/cuzillion/?c0=bi1dfff2_0_f

Faster ForwardTM

©2013 Akamai
Yes – Beacons delay onload (on most browsers)
http://www.browserstack.com/screenshots/3c4be740eee4ad95af43ef0fc6a800d7a7aa7758

Beacons didn’t
block onload on:
- IE 7
- IE 8

Faster ForwardTM

©2013 Akamai
Works for Images Too!

Faster ForwardTM

©2013 Akamai
Analytics & Beacons

- Goal: Async without delaying onload
- Shouldn’t delay visible content
- Defer not great since it’s likely to miss users

- Technique: Dynamically generated IFrame
- Only works if no page manipulation is required

- Catches and what can you do about them
- Inline & external script relationships
- Event registration

Faster ForwardTM

©2013 Akamai
External Script

Cringe…

Dependent Inline Script
Further Dependent
External Script

Further down
dependent
inline script
Faster ForwardTM

©2013 Akamai
Run “inline” script at onload

Slight Snag…
But you catch my drift…
Don’t forget this one!
(combine all dependents to
avoid race condition bugs)

Faster ForwardTM

©2013 Akamai
FYI: Omniture Workarounds

Faster ForwardTM

©2013 Akamai
Beacon API – Draft W3C Spec

Faster ForwardTM

©2013 Akamai
Non-Critical Page Components

- Goal: Defer Download
- If they’re not critical, they shouldn’t content with the rest

Faster ForwardTM

©2013 Akamai
Defer Download Example

Faster ForwardTM

©2013 Akamai
Defer Download Example

Faster ForwardTM

©2013 Akamai
Non-Critical Page Components

- Goal: Defer Download
- If they’re not critical, they shouldn’t content with the rest

- Catches and what can you do about them
-

Event registration
Inline & external script relationships
document.write()
Execution order

Faster ForwardTM

©2013 Akamai
Nullify document.write()

- Built into browsers (at least IE 9+, Safari, Chrome & Firefox)
- Firefox even gives a nice console error…

Faster ForwardTM

©2013 Akamai
Resource Priorities

Faster ForwardTM

©2013 Akamai
Critical Page Components

- Methodology: Async with blocking onload
- Keep 3rd parties from blocking 1st party content
- Delay onload as page not complete until component is loaded

Faster ForwardTM

©2013 Akamai
Async with blocking onload

Faster ForwardTM

©2013 Akamai
Critical Page Components

- Methodology: Async with blocking onload
- Keep 3rd parties from blocking 1st party content
- Delay onload as page not complete until component is loaded

- Catches and what can you do about them
-

Event registration
Inline & external script relationships
document.write()
Execution order

Faster ForwardTM

©2013 Akamai
Async scripts with Execution Order

Faster ForwardTM

©2013 Akamai
Interim Summary

- Analytics/Beacons – Async without delaying onload
- Non-Critical Widgets – Defer Download (and Execution)
- Critical Widgets – Async with delaying onload

Faster ForwardTM

©2013 Akamai
Resource Timing Opt-In

Ask Require All your 3rd Party Vendors to add this header!
-

Unless they give you a REALLY good privacy reason not to.

Faster ForwardTM

©2013 Akamai
3rd Party Checklist – Work in Progress…

@bentlegen

@igrigorik

@bbinto

@guypod
Faster ForwardTM

@triblondon

Kyle Kinnaman
©2013 Akamai
Summary

- 3rd Party tags are a part of our reality…
- Pick your strategies:
- Analytics/Beacons – Async without delaying onload
- Non-Critical Widgets – Defer Download (and Execution)
- Critical Widgets – Async with delaying onload

- Track the Beacon & Resource Priorities Specs
- Challenge your 3rd party vendors on their perf & availability

Faster ForwardTM

©2013 Akamai
Questions?
THIRD PARTY PERFORMANCE

Guy Podjarny (@guypod)
CTO, Web Experience, Akamai

Faster ForwardTM

©2013 Akamai

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (7)

Edge 2016 automating h2 push
Edge 2016 automating h2 pushEdge 2016 automating h2 push
Edge 2016 automating h2 push
 
Edge 2016 h2 in the real world
Edge 2016 h2 in the real worldEdge 2016 h2 in the real world
Edge 2016 h2 in the real world
 
Edge 2016 barbarians at the gateway
Edge 2016 barbarians at the gatewayEdge 2016 barbarians at the gateway
Edge 2016 barbarians at the gateway
 
AMIMOTO: WordPress + Amazon Web Services University of the Philippines Los Baños
AMIMOTO: WordPress + Amazon Web Services University of the Philippines Los BañosAMIMOTO: WordPress + Amazon Web Services University of the Philippines Los Baños
AMIMOTO: WordPress + Amazon Web Services University of the Philippines Los Baños
 
Velocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image OptimizationVelocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image Optimization
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
 
#UseThePlatfom - Levando suas aplicações ao próximo nível com Polymer
#UseThePlatfom - Levando suas aplicações ao próximo nível com Polymer#UseThePlatfom - Levando suas aplicações ao próximo nível com Polymer
#UseThePlatfom - Levando suas aplicações ao próximo nível com Polymer
 

Andere mochten auch

Akamai Workforce's STEM Interns to Present Work _ Maui Now
Akamai Workforce's STEM Interns to Present Work _ Maui NowAkamai Workforce's STEM Interns to Present Work _ Maui Now
Akamai Workforce's STEM Interns to Present Work _ Maui Now
Michael Gorman
 

Andere mochten auch (11)

Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)
 
Akamai Workforce's STEM Interns to Present Work _ Maui Now
Akamai Workforce's STEM Interns to Present Work _ Maui NowAkamai Workforce's STEM Interns to Present Work _ Maui Now
Akamai Workforce's STEM Interns to Present Work _ Maui Now
 
Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)
 
Cloud Computing 2010 - Akamai Technologies - Tony Hosseiny
Cloud Computing 2010 - Akamai Technologies - Tony HosseinyCloud Computing 2010 - Akamai Technologies - Tony Hosseiny
Cloud Computing 2010 - Akamai Technologies - Tony Hosseiny
 
Traffic Engineering for CDNs
Traffic Engineering for CDNsTraffic Engineering for CDNs
Traffic Engineering for CDNs
 
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case StudyEdge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
 
Akamai: From Theory to Practice
Akamai: From Theory to PracticeAkamai: From Theory to Practice
Akamai: From Theory to Practice
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)
 
Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)
 
Beyond Page Level Metrics
Beyond Page Level MetricsBeyond Page Level Metrics
Beyond Page Level Metrics
 
Technology stack behind Airbnb
Technology stack behind Airbnb Technology stack behind Airbnb
Technology stack behind Airbnb
 

Ähnlich wie Third party-performance (Airbnb Nerds, Nov 2013)

Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
💻 Javier Garza
 

Ähnlich wie Third party-performance (Airbnb Nerds, Nov 2013) (20)

DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015DIY Website Performance - Akamai Toronto Tech Day 2015
DIY Website Performance - Akamai Toronto Tech Day 2015
 
UI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery NetworkUI5 with Akamai - Introduction to the Content Delivery Network
UI5 with Akamai - Introduction to the Content Delivery Network
 
Edge 2016 measuring what matters
Edge 2016 measuring what mattersEdge 2016 measuring what matters
Edge 2016 measuring what matters
 
Akamai Korea - Tech Day (2015/03/11) HTTP/2
Akamai Korea - Tech Day (2015/03/11) HTTP/2Akamai Korea - Tech Day (2015/03/11) HTTP/2
Akamai Korea - Tech Day (2015/03/11) HTTP/2
 
Akamai internet insights
Akamai internet insightsAkamai internet insights
Akamai internet insights
 
Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
Real world experiences with HTTP/2 (Michael Gooding, Javier Garza from Akamai)
 
Cloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to SophisticatedCloud Delivery: The Path from Simple to Sophisticated
Cloud Delivery: The Path from Simple to Sophisticated
 
Akamai 서비스 트러블 슈팅 및 테스트 방법과 도구
Akamai 서비스 트러블 슈팅 및 테스트 방법과 도구Akamai 서비스 트러블 슈팅 및 테스트 방법과 도구
Akamai 서비스 트러블 슈팅 및 테스트 방법과 도구
 
Tom uk soti_final_without video.4.21.15
Tom uk soti_final_without video.4.21.15Tom uk soti_final_without video.4.21.15
Tom uk soti_final_without video.4.21.15
 
Great Expectations - Dr. Tom Leighton, Akamai
Great Expectations - Dr. Tom Leighton, AkamaiGreat Expectations - Dr. Tom Leighton, Akamai
Great Expectations - Dr. Tom Leighton, Akamai
 
AMP - SMX München 2018
AMP - SMX München 2018AMP - SMX München 2018
AMP - SMX München 2018
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
App-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai EasyApp-solute Testing: Making App Testing with Akamai Easy
App-solute Testing: Making App Testing with Akamai Easy
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
 
Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09Real User Measurement Insights, NYWebPerf 2018-Aug-09
Real User Measurement Insights, NYWebPerf 2018-Aug-09
 
Chicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWDChicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWD
 
Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)
 
Site Managing Performance
Site Managing PerformanceSite Managing Performance
Site Managing Performance
 
7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services
 
Hans Nipshagen (Akamai) | TU - Hack & Attacks
Hans Nipshagen (Akamai) | TU - Hack & AttacksHans Nipshagen (Akamai) | TU - Hack & Attacks
Hans Nipshagen (Akamai) | TU - Hack & Attacks
 

Mehr von Guy Podjarny

Rules driven-delivery
Rules driven-deliveryRules driven-delivery
Rules driven-delivery
Guy Podjarny
 

Mehr von Guy Podjarny (16)

Serverless Security: What's Left To Protect
Serverless Security: What's Left To ProtectServerless Security: What's Left To Protect
Serverless Security: What's Left To Protect
 
Securing Serverless - By Breaking In
Securing Serverless - By Breaking InSecuring Serverless - By Breaking In
Securing Serverless - By Breaking In
 
Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?
 
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
 
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
 
High Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean SlowHigh Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean Slow
 
Responsive In The Wild, 2014
Responsive In The Wild, 2014Responsive In The Wild, 2014
Responsive In The Wild, 2014
 
Rules driven-delivery
Rules driven-deliveryRules driven-delivery
Rules driven-delivery
 
Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)
 
Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)
 
A Picture Costs A Thousand Words
A Picture Costs A Thousand WordsA Picture Costs A Thousand Words
A Picture Costs A Thousand Words
 
Step by Step Mobile Optimization
Step by Step Mobile OptimizationStep by Step Mobile Optimization
Step by Step Mobile Optimization
 
Quantifying The Mobile Difference
Quantifying The Mobile DifferenceQuantifying The Mobile Difference
Quantifying The Mobile Difference
 
Performance Implications of Mobile Design
Performance Implications of Mobile DesignPerformance Implications of Mobile Design
Performance Implications of Mobile Design
 
Unravelling Mobile Web Performance
Unravelling Mobile Web PerformanceUnravelling Mobile Web Performance
Unravelling Mobile Web Performance
 
State Of Mobile Web Performance
State Of Mobile Web PerformanceState Of Mobile Web Performance
State Of Mobile Web Performance
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Third party-performance (Airbnb Nerds, Nov 2013)

  • 1. THIRD PARTY PERFORMANCE Guy Podjarny (@guypod) CTO, Web Experience, Akamai Faster ForwardTM ©2013 Akamai
  • 2. What’s a third party? - Not a 1st Party? - Infrastructure & code managed by someone else - What’s not a 3rd party: - Reused Software (e.g. jQuery, Apache) – premium or free Commercial Hardware (e.g. ADC, WAF) Cloud Provider (e.g. AWS) CDN (e.g. Akamai) Faster ForwardTM ©2013 Akamai
  • 3. Where are the third parties? - A tag on the page - Analytics/trackers - invisible - Image Tags & Scripts - Non-critical page components (e.g. Share buttons, Get feedback…) - Critical Page Components (A/B Testing, Shopping Cart Personalization, Ads(?)..) - An inline Cloud proxy (e.g. MotionPoint, SiteSpect) Faster ForwardTM ©2013 Akamai
  • 4. # Domains Per Page Sep 2013 Percentiles: - 25th : 4 domains - 50th : 10 domains - 75th : 21 domains - 90th : 36 domains Faster ForwardTM ©2013 Akamai
  • 5. Ghostery Data - Media Faster ForwardTM ©2013 Akamai
  • 6. Ghostery Data - Retail Faster ForwardTM ©2013 Akamai
  • 7. 3rd Party Extravaganza! Faster ForwardTM ©2013 Akamai
  • 8. Airbnb Home Page Faster ForwardTM ©2013 Akamai
  • 9. Airbnb Location Page Faster ForwardTM ©2013 Akamai
  • 10. Why Should you Care? (from a performance perspective) - Single Point of Failure – SPOF - Scripts block rendering of everything below them - Delayed load event - Users see progress indicators for longer - Other deferred actions get delayed - e.g. $.ready(myfunc) - Delayed 1st party scripts - Resource Contention - Battery Consumption (on mobile) Faster ForwardTM ©2013 Akamai
  • 11. SPOF Home Page, Optimizely & Truste Down Business Week, Truste Down Faster ForwardTM 22 Secs 45 Secs 22 Secs ©2013 Akamai
  • 12. SPOF – Not Only Your Homepage Category Page, BazaarVoice down Faster ForwardTM 23 Secs ©2013 Akamai
  • 13. Airbnb.ca homepage: SPOF delays late actions Faster ForwardTM ©2013 Akamai
  • 14. New York Page Faster ForwardTM ©2013 Akamai
  • 15. New York Page SPOF Faster ForwardTM ©2013 Akamai
  • 16. The 1st Party Arsenal - Async - Delay onload (async att) vs don’t delay onload (IFrame) - Defer Execution - Defer Download - Remove Tag Faster ForwardTM ©2013 Akamai
  • 17. Analytics & Beacons - Goal: Async without delaying onload - Shouldn’t delay visible content - Defer not great since it’s likely to miss users Faster ForwardTM ©2013 Akamai
  • 18. Beacons that don’t delay onload Faster ForwardTM ©2013 Akamai
  • 19. Beacons that don’t delay onload Faster ForwardTM ©2013 Akamai
  • 20. Q: Do Script-Inserted Beacon Images Delay Onload? http://stevesouders.com/cuzillion/?c0=bi1dfff2_0_f Faster ForwardTM ©2013 Akamai
  • 21. Yes – Beacons delay onload (on most browsers) http://www.browserstack.com/screenshots/3c4be740eee4ad95af43ef0fc6a800d7a7aa7758 Beacons didn’t block onload on: - IE 7 - IE 8 Faster ForwardTM ©2013 Akamai
  • 22. Works for Images Too! Faster ForwardTM ©2013 Akamai
  • 23. Analytics & Beacons - Goal: Async without delaying onload - Shouldn’t delay visible content - Defer not great since it’s likely to miss users - Technique: Dynamically generated IFrame - Only works if no page manipulation is required - Catches and what can you do about them - Inline & external script relationships - Event registration Faster ForwardTM ©2013 Akamai
  • 24. External Script Cringe… Dependent Inline Script Further Dependent External Script Further down dependent inline script Faster ForwardTM ©2013 Akamai
  • 25. Run “inline” script at onload Slight Snag… But you catch my drift… Don’t forget this one! (combine all dependents to avoid race condition bugs) Faster ForwardTM ©2013 Akamai
  • 26. FYI: Omniture Workarounds Faster ForwardTM ©2013 Akamai
  • 27. Beacon API – Draft W3C Spec Faster ForwardTM ©2013 Akamai
  • 28. Non-Critical Page Components - Goal: Defer Download - If they’re not critical, they shouldn’t content with the rest Faster ForwardTM ©2013 Akamai
  • 29. Defer Download Example Faster ForwardTM ©2013 Akamai
  • 30. Defer Download Example Faster ForwardTM ©2013 Akamai
  • 31. Non-Critical Page Components - Goal: Defer Download - If they’re not critical, they shouldn’t content with the rest - Catches and what can you do about them - Event registration Inline & external script relationships document.write() Execution order Faster ForwardTM ©2013 Akamai
  • 32. Nullify document.write() - Built into browsers (at least IE 9+, Safari, Chrome & Firefox) - Firefox even gives a nice console error… Faster ForwardTM ©2013 Akamai
  • 34. Critical Page Components - Methodology: Async with blocking onload - Keep 3rd parties from blocking 1st party content - Delay onload as page not complete until component is loaded Faster ForwardTM ©2013 Akamai
  • 35. Async with blocking onload Faster ForwardTM ©2013 Akamai
  • 36. Critical Page Components - Methodology: Async with blocking onload - Keep 3rd parties from blocking 1st party content - Delay onload as page not complete until component is loaded - Catches and what can you do about them - Event registration Inline & external script relationships document.write() Execution order Faster ForwardTM ©2013 Akamai
  • 37. Async scripts with Execution Order Faster ForwardTM ©2013 Akamai
  • 38. Interim Summary - Analytics/Beacons – Async without delaying onload - Non-Critical Widgets – Defer Download (and Execution) - Critical Widgets – Async with delaying onload Faster ForwardTM ©2013 Akamai
  • 39. Resource Timing Opt-In Ask Require All your 3rd Party Vendors to add this header! - Unless they give you a REALLY good privacy reason not to. Faster ForwardTM ©2013 Akamai
  • 40. 3rd Party Checklist – Work in Progress… @bentlegen @igrigorik @bbinto @guypod Faster ForwardTM @triblondon Kyle Kinnaman ©2013 Akamai
  • 41. Summary - 3rd Party tags are a part of our reality… - Pick your strategies: - Analytics/Beacons – Async without delaying onload - Non-Critical Widgets – Defer Download (and Execution) - Critical Widgets – Async with delaying onload - Track the Beacon & Resource Priorities Specs - Challenge your 3rd party vendors on their perf & availability Faster ForwardTM ©2013 Akamai
  • 42. Questions? THIRD PARTY PERFORMANCE Guy Podjarny (@guypod) CTO, Web Experience, Akamai Faster ForwardTM ©2013 Akamai

Hinweis der Redaktion

  1. http://www.webpagetest.org/video/compare.php?tests=131014_TS_61a4bc3ecbd8a4d1b84e6d3cbf397a3b%2C131014_YR_d9dc75ab1c43d635a8b5d072d92c5830&thumbSize=200&ival=1000&end=visual
  2. http://www.webpagetest.org/video/compare.php?tests=131014_DB_563f7c9daf8cbac69641778c7e433764%2C131014_6N_d2f5c727727583b8c4404c8777e60a2a&thumbSize=200&ival=1000&end=visual&font=9
  3. http://www.webpagetest.org/video/compare.php?tests=131031_WP_2be372a6f51d099542f5d32317f124eb%2C131031_RT_2cc38c9687c1c0e87bab8dcb36364117&thumbSize=200&ival=1000&end=visual
  4. http://www.webpagetest.org/video/compare.php?tests=131101_AR_55144c3188a1273c298b66fb36f134ff-l:MixPanel+Down%2C131031_T0_edd6da0f89972c3fa9321efc60ca58ec-l:Google+Maps+Down%2C131031_06_841a45f9090a02e44ce8510f23703b8a&thumbSize=200&ival=500&end=visual
  5. http://www.webpagetest.org/video/compare.php?tests=131101_AR_55144c3188a1273c298b66fb36f134ff-l:MixPanel+Down%2C131031_T0_edd6da0f89972c3fa9321efc60ca58ec-l:Google+Maps+Down%2C131031_06_841a45f9090a02e44ce8510f23703b8a&thumbSize=200&ival=500&end=visual
  6. <script>(function(url,tag){variframe = document.createElement('iframe'); (iframe.frameElement || iframe).style.cssText = "width: 0; height: 0; border: 0";var where = document.getElementsByTagName('script'); where = where[where.length - 1];where.parentNode.insertBefore(iframe, where);var doc = iframe.contentWindow.document;doc.open().write('<body onload="'+ 'varjs = document.createElement(\''+tag+'\');'+ 'js.src = \''+ url +'\';'+ 'document.body.appendChild(js);">');doc.close();})('http://3party.com/widget.js','img');</script>
  7. <script>(function(url,tag){variframe = document.createElement('iframe'); (iframe.frameElement || iframe).style.cssText = "width: 0; height: 0; border: 0";var where = document.getElementsByTagName('script'); where = where[where.length - 1];where.parentNode.insertBefore(iframe, where);var doc = iframe.contentWindow.document;doc.open().write('<body onload="'+ 'varjs = document.createElement(\''+tag+'\');'+ 'js.src = \''+ url +'\';'+ 'document.body.appendChild(js);">');doc.close();})('http://3party.com/widget.js','img');</script>