SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
ALL ABOUT PERCEIVED
PERFORMANCE
Aakash Bapna

UI Engineer, flipkart.com


!1
Me!

Abhilash

Arya

!2
I HATE SLOW WEBSITES.

!3
!4
ANYTHING YOU ADD- BROWSERS HAVE TO
DOWNLOAD, COMPUTE &
RENDER

!5
ANYTHING YOU ADD- BROWSERS HAVE TO
DOWNLOAD, COMPUTE &
RENDER

!6
Basics Performance Rules

•
•
•
•
•

CSS on top, JS at bottom.

Use CDN.

Caching static resources.

Minify JS, CSS, gzip.

… Y! slow rules


!7
USERS STILL SAY YOUR SITE IS
SLOW
!8
WHAT PERCEIVED
PERFORMANCE?

!9
!10
ITS ALL HOW USERS
PERCEIVE YOUR PAGE LOAD
whether loads in a flash, or takes ages to load.

!11
YOU HAVE TO MAKE USERS
BELIEVE ITS LOADING FAST...

!12
HOW WE DO THIS?

!13
Skeleton screens- Homepage
(below fold)

!14
Progressively enhanced MotoG page

SLOW CONNECTION

FAST CONNECTION
!15
Other Techniques
1.
2.
3.

Show precise progress loader when it
takes time (gmail)

Optimistic actions. (Instagram)

Paint what they are seeing right now.

!16
Other Techniques
1.
2.
3.

Show precise progress loader when it
takes time (gmail)

Optimistic actions. (Instagram)

Paint what they are seeing right now.

!17
MEASURING PERCEIVED
PERFORMANCE
HARD!

!18
SYNTHETIC MONITORING

!19
WEBPAGETEST
1.
2.
3.
4.
5.

Shows load times.

Shows waterfall of requests of how
page loaded.

CPU, network utilisation.

Filmstrips. 

etc…

!20
Frames

Waterfall

!21
“Why is it taking 715ms to download a 5kb
image?” - A developer after running WPT.

!22
Problem with WPT

•
•

!

Inconsistent results for load times on
every run.

Probably due to network conditions in
India.

!23
BIGGER QUESTION- HOW OFTEN ARE
USERS SEEING THE PAGE WEBPAGETEST
IS SEEING?

!24
REAL USER MONITORING

!25
window.onload
1.
2.
3.
4.

so Web 1.0.

Doesn’t tell you how page loaded. 

Above the fold might complete very
early.

This is the bare minimum you should
record.

!26
NAVIGATION TIMING API

!27
NAVIGATION TIMING API
Client Time:
Very High.

NEED MOAR
DETAILS!

Server Time:
Very less for
big sites.

!28
WHAT IF YOU COULD EXPORT
REQUESTS WATERFALL FROM
REAL USERS?
and reconstruct picture.

!29
Resource Timing API.

•
•
•
•

window.performance.getEntries()

Supported: latest Chrome, IE10!

DNS/TCP connect times available
when cross origin headers are set.

under documented.

!30
NAVIGATION TIMING API +
RESOURCE TIMING API =
WINDOW.ONLOAD
complete end to end picture of network performance.

!31
WE EXPORTED DATA FROM BROWSERS,
RAN HADOOP JOBS TO PROCESS THIS.

!32
!33
Requests Waterfall from RUM

!34
Requests Waterfall from RUM
Identify critical requests

!35
Requests Waterfall from RUM
Above the fold load time,
aim for getting this as
low as possible

!36
Findings (what was fast) :

•
•
•

CSS, JS are heavily cached over
requests, median under 100ms.

Cleaning up CSS/JS would hardly
move metrics.

Although CSS load times are less, its a
blocking resource and need to keep a
check on its size.

!37
Findings (what was slow) :

•
•
•
•

Google Analytics, Omniture tracking
calls were taking 500ms (median)

Redirects.

HTML document itself taking too long
to load.

Images.

!38
CRITICAL REQUESTS.
Let browser handle, 

make them discoverable to browsers as soon as possible via
markup itself.

!39
NON-CRITICAL, BELOW FOLD

Lazy load images, lazy load modules via Ajax at DOM Ready.

!40
3RD PARTY CODE, SHARE
BUTTONS
You don’t have control over these, start at post onload.

!41
All in all, data by Resource Timing APIs is a
gold mine. There is lots to discover from it.

!42
FIXING IMAGES

!43
DEVELOPER: “THIS IMAGE IS HUGE, GIMME A SMALLER ONE”

!

DESIGNER: “OKAY, HOW SMALL?”

!

DEVELOPER: (CONFUSED, MAKES A RANDOM GUESS…)

!44
DON’T GUESS, USE DATA.

use data from Resource Timing APIs

!45
Example:

730px x 300px
50kb
380ms to load

!46
FIXING CAROUSELS

!47
An example carousel on site.

!48
Wrong way

3 x 50kb images in parallel


!

Median load time of each: 832ms


!

BUT we are showing only one image, why load all three?

!49
Right way

Median load time: 380ms

Load via <img src=’’” >
as a critical resource

Load via javascript after
critical requests end.

!50
IMAGE REUSE

!51
Browse Page

Product Page
!52
Same cached image from previous
page upscaled and used as
placeholder while big image loads.

Browse Page

Product Page
!53
THEMING

All developers hate it.

!54
!55
Progressive festival theming
1.
2.
3.
4.
5.
6.

Theme is non-critical, should load after all
critical requests complete.

All functionality should work with base skin.

Limited to colours, background images.

No new DOM elements, use :before, :after.

Packed in single theme.css file.

Theme CSS file is loaded asyncly on DOM
ready.
!56
FIXING HTML SIZE

Important as affects discovery on critical requests.

!57
Our huuuge Nav menu

!58
MENU ON SLOW
CONNECTION

!59
<html>

<head>

	 <!— css —>

</head>

<body>

	 <div class=“header”>

	
	
<!— search bar —>

	 	
<!— navigation menu and big fat submenus —>
……. 

.……	


</div>

<img src=“…” />
<img src=“…” />
…

</body>


!60
HTML caching

•
•
•
•

Over 40% of our markup is flyout
menu.

Persisted on clientside with
localStorage for 10 mins.

Drastically reduced payload which was
transferred for every request. 

200ms improvement over median.

!61
REDIRECTS

very costly

!62
IT ALL STARTS WITH A
SHORTCUT
if (some condition) redirect();

!63
DECIDE URL STRATEGY BETWEEN
MOBILE/DESKTOP EARLY ON.

!64
PREFER ONE URL BETWEEN
MOBILE/DESKTOP
www.flipkart.com - good

www.flipkart.com/m - bad

!65
MOBILE SITE PERFORMANCE

!66
Mobile perf. highlights

•
•
•

Much of users(~50%) still come from
2G connections in India.

Use touchStart event instead of
click(~300ms delay).

A/B tested heavily to find right mix of
content.

!67
TO SUSTAIN
Performance is a moving target.

!68
To sustain
1.
2.
3.

Have a performance team.

Measure key performance metrics.

Use webpagetest in CI to keep an eye
on what's being checked in.

!69
THE FUTURE
Prefetching

!70
NATIVE APPS ARE CHEATING
WITH PREFETCHING

!71
NATIVE APP: 8.5MB

WEB VIEW: 0 BYTES

!72
Food for thought

•
•
•

Prefetching autosuggest, next pages…

Going offline with ServiceWorkers
[W3C proposal] 

Prefetching on hover/touchStart http://
instantclick.io/

!73
THANK YOU!
connect:

twitter: @_aakash

mail: aakash@flipkart.com
!74

Weitere ähnliche Inhalte

Was ist angesagt?

Front end optimization
Front end optimizationFront end optimization
Front end optimization
Abhishek Anand
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriver
seleniumconf
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
Michael Klepikov
 

Was ist angesagt? (20)

WordPress Optimization with Litespeed Cache #wpjkt14
WordPress Optimization with Litespeed Cache  #wpjkt14WordPress Optimization with Litespeed Cache  #wpjkt14
WordPress Optimization with Litespeed Cache #wpjkt14
 
Wordcamp2009
Wordcamp2009Wordcamp2009
Wordcamp2009
 
Speed!
Speed!Speed!
Speed!
 
Front end optimization
Front end optimizationFront end optimization
Front end optimization
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
JS digest. Decemebr 2017
JS digest. Decemebr 2017JS digest. Decemebr 2017
JS digest. Decemebr 2017
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
 
WordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngineWordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngine
 
Architectures For Scaling Ajax
Architectures For Scaling AjaxArchitectures For Scaling Ajax
Architectures For Scaling Ajax
 
WordPress website optimization
WordPress website optimizationWordPress website optimization
WordPress website optimization
 
An extended explanation of caching
An extended explanation of cachingAn extended explanation of caching
An extended explanation of caching
 
Web performance
Web performanceWeb performance
Web performance
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriver
 
Technical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 editionTechnical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 edition
 
Webpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsWebpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ Steps
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
 

Ähnlich wie Meta Refresh 2014

High performance website
High performance websiteHigh performance website
High performance website
Chamnap Chhorn
 
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Jay Hung
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Salem Ghoweri
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)
Ontico
 

Ähnlich wie Meta Refresh 2014 (20)

Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
 
High performance website
High performance websiteHigh performance website
High performance website
 
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
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
 
Web Optimisation
Web OptimisationWeb Optimisation
Web Optimisation
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
 
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
 
Squeeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla WebsiteSqueeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla Website
 
Responsive content
Responsive contentResponsive content
Responsive content
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)
 
Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Meta Refresh 2014

Hinweis der Redaktion

  1. good morning everyone, I am Aakash, I work with web performance team at Flipkart. Today I will talk about perceived perf. Lets start with this, How many of you feel Flipkart is fast?
  2. These are the guys you should thank or blame when Flipkart is fast/slow. Thats me on top, then Abhilash and then Arya.I take care of desktop site perf, abhilash mobile site and arya of all server side perf.
  3. I really hate slow websites. Developers test websites on fast office connections and get away with it. But In India, we could be subjected to slow connections at any point. You download TV series in night, morning you cross your FUP and your connection goes to 256K.
  4. We curse the products we built. I really hate when I see the title of the tab and a white page below it. The content is actually ready with browser but its waiting for css request to finish. I feel these white pages are the reason web appears slow. And these white pages — browsers are really fast in rendering them.
  5. anything you add to it, browsers have to download it, compute it and render on screen.
  6. this talk we will see how to handle the download part, network part. We will not talk about JS performance, or rendering performance.
  7. Lets start with basics, you do all this. You put css on top, js at bottom. use cdn and follow all those Y! slow rules.
  8. But users still say your site is slow.
  9. To fix things now, lets take a step back and see the fast page on earth.
  10. this is the fastest page on earth.
  11. Lets see why users are saying its slow, what is perceived performance.
  12. This is to me is perceived performance! You don’t always need the fastest bike to win the race You need a good strategy to load content to make appear websites faster.
  13. Its all how your users perceive your page load, whether it loads in a flash or takes ages to load.
  14. You have to make users believe its loading, its loading fast even when its not the case.
  15. Lets see how you can do this.
  16. This is the snapshot of below the fold of our homepage while it is still loading. We put placeholders where content will appear once it loads.
  17. Slow connection: all text visible, action buttons clickable. Fast connection: full width images, parallax scroll. possible because of background:blue
  18. Show precise progress loader when it takes time (gmail) Optimistic actions. (Instagram) Paint what users are seeing right now.
  19. Most important. We will see this in detail through the talk.
  20. What users see on screen is nothing but critical rendering path, lets see how we optimised that.
  21. Next, measuring perceived performance. How do you know whether users feel its fast or slow? Also, you need to know what are you fixing and how it will affect the user.
  22. Running a test locally and seeing the results.
  23. How many of you have used WebpageTest at least once?
  24. One particular, very interesting feature of WPT is the flimstrips. As you hover over frames, it shows you the status of network requests at that time which you could correlate to the content of frame. It tells you how each network request is perceived by the user.
  25. Using WPT, HTTPARCHIVE.org stores historical information about how websites load. Allows you to benchmark against different sites. Here is Flipkart homepage an year ago, now.
  26. “Why is it taking 715ms to download a 5kb image” exact quote from one of our emails.
  27. Bigger question- How often are users seeing the page Webpagetest is seeing? How often are they seeing the slow requests, how often are they seeing the page load like in video on httparchive?
  28. thats why we need real user monitoring, we need data from actual users.
  29. browsers fire this when all requests start before this event complete.
  30. Gives a detailed break down of main request.
  31. Enter Resource Timing API
  32. This is what we observed. Complete CHAOS, So many requests starting, all wanting to complete as soon as possible.
  33. To get better idea, We constructed the waterfall from startTime and duration of requests. We found lots of optimisations possible, which would give biggest benefit?
  34. We went on identify critical requests. CSS logo main sprite banner - occupying more than 50% of screen.
  35. JS cleanup is the last thing you should do for performance optimisation.
  36. WE grouped our requests. Let browser handle them, make them discoverable to browsers as soon as possible via markup itself.
  37. All in all, data by resource timing APIs is a gold mine. There is lots to discover from it.
  38. 730px x 300px banner takes 380ms to load.
  39. Very easy to wrongly implement. They could impact overall page performance if not implemented correctly.
  40. three images, one on each slide. if you load all of them in parallel. each of them would load in 832ms, because they all compete for bandwidth
  41. Load visible images via markup, rest when connection is idle.
  42. Our users navigate a lot between browse and product pages.
  43. Experimented on mobile site, coming soon on desktop.
  44. This is how flipkart looked on Diwali, then christmas and latest-&gt; valentines day. Frankly, How many of you like these themes? The idea was that the christmas tree should load after product images, banners.
  45. Guidelines for themes.
  46. Submenus make it huge, categories expanded over time and exploded the menu.
  47. on a data card like connection. for every page view.
  48. Simillar gains on mobile
  49. Its very bad practise in code, soon everyone exploits this.’ At one point most of our search queries were redirects. We saved 700ms (median) in redirects on search pages. Increased searches per visit and everything else related
  50. otherwise you will be left redirecting users here and there.
  51. It makes things easier in longer run.
  52. Most of things we discussed applied to both mobile/desktop.
  53. Performance is a moving target, you can’t do once and forget.
  54. performance team to evangelise performance to other team.s
  55. Prefetching is the future of performance, to give near instant loads like native apps.
  56. lets compare Flipkart mobile app, vs iOS app When you open Flipkart app
  57. Tell a web developer, you could download 8.5mb of data on client, how happy he would be! With this Apps could show splash screens, stale data and buy more time to load. But moment you hit across a webview in app, it shows a white page!