Stevesouders.com/docs/sfjs-20120112.pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.

Slides:



Advertisements
Similar presentations
Building Fast 3rd-Party Webapps O'Reilly Velocity Web Performance and Operations Conference 24 June Lessons.
Advertisements

CS193H: High Performance Web Sites Lecture 9: Rule 5 – Put Stylesheets at the Top Steve Souders Google
Episodes a shared approach for timing web pages Steve Souders Google Disclaimer: This content does not necessarily reflect.
Steve Souders Even Faster Web Sites best practices for faster pages Disclaimer:
High Performance Web Sites Essential Knowledge for Frontend Engineers
CS193H: High Performance Web Sites Lecture 20: Vol 2 – Don't Scatter Inline Scripts Steve Souders Google
Steve Souders Even Faster Web Sites best practices for faster pages Disclaimer: This content does not necessarily.
CS193H: High Performance Web Sites Lecture 12: Rule 8 – Make JavaScript and CSS External Steve Souders Google
CS193H: High Performance Web Sites Lecture 19: Vol 2 – Load Scripts Without Blocking Steve Souders Google
CS193H: High Performance Web Sites Lecture 10: Rule 6 – Put Scripts at the Bottom Steve Souders Google
Web Performance Meetup 1 Web Performance 101 Jeremy
Stevesouders.com/docs/velocity-wpo pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
HTTP Request/Response Process 1.Enter URL ( in your browser’s address bar. 2.Your browser uses DNS to look up IP address of server.com.
Client side performance in Web based Banking applications Divakar Prabhu Infosys Limited (NASDAQ: INFY)
Stevesouders.com/docs/ny-meetup pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
stevesouders.com/docs/accel-hpws pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
1 Reproduction interdite. © ip-label 2012 Arnaud Becart ip-label.
High Performance Websites (Based on Steve Souder’s lecture) By Bhoomi Patel.
Disclaimer: This content does not necessarily reflect the opinions of my employer.
Discovering Digital Library User Behavior with Google Analytics Kirk Hess University of Illinois Urbana-Champaign Hi #code4lib!
Stevesouders.com/docs/velocity-efws pptx Disclaimer: This content does not necessarily reflect the opinions of my employer. flickr.com/photos/ddfic/ /
 What I hate about you things people often do that hurt their Web site’s chances with search engines.
Performance, SEO, Accessibility Ivan Zhekov Telerik Corporation
1 An Introduction to W eb Analytics for Performance Analysts and Capacity Planners Anna Long Founder and Principal Analyst Web Analytica SM.
Computer Concepts 2014 Chapter 7 The Web and .
HTML Essentials Frames and Frame Tags. Introduction A frame used to be an effective design tool Utilized space effectively by subdividing screen One idea:
- Barath Krishnamoorthy, Cognizant RUM - Future of Monitoring Beginning 2012 Real User Monitoring (RUM) Using Google Analytics Site Speed.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
PACS - 09/19/15 1 favicon A ‘Favorite icon’ is a file containing one or more small icons associated with a particular website or web page. Web browsers.
Stevesouders.com/docs/thinkvitamin pptx Disclaimer: This content does not necessarily reflect the opinions of my employer. flickr.com/photos/ddfic/ /
JavaScript, Fourth Edition
Page Speed Bryan McQuade Richard Rabbat. Outline  What is Page Speed?  Inception of Page Speed  Cool features  Identify unused JavaScript and CSS.
MEASURING IPV6 Using Google Analytics A Contribution to World IPv6 Day, June Emile Aben, RIPE NCC Geoff Huston, APNIC George Michaelson, APNIC.
Don't Let Third Parties Slow You Down Arvind Jain, Michael Kleber Google.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
Stevesouders.com/docs/amsterdam-meetup pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
Impact for impact’s sake Tim Hitchcock Professor of Digital History University of Sussex Andries Both, ‘A Blacksmith’s Shop’, c.1640 ©British Museum.
Google Analytics & Millennium 8 th Annual MENA-IUG Conference Doha, Qatar Google Analytics & Millennium| American University of Sharjah |
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
Web Technologies Lecture 7 Synchronous vs. asynchronous.
Rich Internet Applications 3. Client JavaScript. Document Object Model (DOM) The DOM, is an interface that allows scripts or programs to access and manipulate.
BARBARA ARNETT WEB SERVICES LIBRARIAN VALERIE FORRESTAL COMMUNICATIONS & NEW MEDIA STRATEGIES LIBRARIAN STEVENS INSTITUTE OF TECHNOLOGY Bridging the gap.
For Fun and Insight Leon King Computer Engineering Technology Network Support Technician.
 AJAX technology  Rich User Experience  Characteristics  Real live examples  JavaScript and AJAX  Web application workflow model – synchronous vs.
EPrints statistics at the University of Northampton Statistics for repositories: DSpace and Eprints 26/2/2013
Surfacing Google Analytics in DSpace Claire Knowles University of Edinburgh Repositories Support Project Webinar 26 th February 2013.
Debugging Front-end Performance
Assessment for Success with Institutional Repository Services
Debugging Front-end Performance
CSE 154 Lecture 11: AJAx.
Introduction to HTML.
Intro to JavaScript CS 1150 Spring 2017.
Chapter 4: HTML5 Media - <video> & <audio>
Even Faster Web Sites best practices for faster pages
14 A Brief Look at JavaScript and jQuery.
Even Faster Web Sites best practices for faster pages
Hints and tips for faster web apps
CSE 154 Lecture 11: AJAx.
Mediatekniikan Seminaari Annina Alamäki
DHTML Javascript Internet Technology.
AMP Up Your Website uWestFest 2017.
CSE 154 Lecture 22: AJAX.
JavaScript: How To? B. Ramamurthy.
DHTML Javascript Internet Technology.
High Performance Mobile
Week 5: Recap and Portfolio Site
Presentation transcript:

stevesouders.com/docs/sfjs pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.

CuzillionSpriteMe YSlow Hammerhead

What’s the #1 cause of slow web pages?

JAVASCRIPT!

all requests containing “.js” are skipped

1995: scripts in HEAD blocks other downloads (IE 6-7, images in IE, iframes) downloaded sequentially (IE 6-7) blocks rendering during download & parse-execute

2007: move scripts to bottom... doesn’t block other downloads downloaded sequentially in IE 6-7 blocks rendering during download & parse-execute

2009: load scripts async var se = document.createElement(‘script’) ; se.src = ‘a.js’; document.getElementsByTagName(‘he ad’)[0].appendChild(se); doesn’t block other downloads downloaded in parallel (all browsers) blocks rendering during parse-execute

2010: async + on-demand exec var se = new Image(); // Object se.onload = registerScript; se.src = ‘a.js’; separate download from parse-execute doesn’t block other downloads downloaded in parallel (all browsers) doesn’t block rendering until demanded

20??: markup

<script src=‘a.js’ [async|defer|noexecute] [deferdownload]> doesn’t block downloads downloaded in parallel doesn’t block rendering until demanded doesn’t contend for a connection easier

ControlJS a JavaScript module for making scripts load faster just change HTML inline & external scripts <script type=‘text/cjs’ data-cjssrc=‘main.js’> var name = getName();

ControlJS a JavaScript module for making scripts load faster download without executing <script type=‘text/cjs’ data-cjssrc=‘main.js’ data-cjsexec=false> Later if/when needed: CJS.execScript(src);

GMail Mobile /* var... */ get script DOM element's text remove comments eval() when invoked awesome for prefetching JS that might (not) be needed

yuiblog.com/blog/2007/01/04/performance-research-part-2/

blaze.io/mobile/understanding-mobile-cache-sizes/

Home screen apps on iPhone are slower because resources are re-requested even though they should be read from cache.

localStorage as cache

Google Analytics Async Snippet var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘ == document.location.protocol ? ‘ : ‘ var s = document.getElementsByTagName(‘script’)[ 0]; s.parentNode.insertBefore(ga, s); code.google.com/apis/analytics/docs/tracking/asyncTracking.html

var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘ == document.location.protocol ? ‘ : ‘ var s = document.getElementsByTagName(‘script’)[ 0]; s.parentNode.insertBefore(ga, s); stevesouders.com/blog/2010/02/10/5a-missing-schema-double-download/ avoid mixed content warning protocol relative URLs have problems set src last

var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘ == document.location.protocol ? ‘ : ‘ var s = document.getElementsByTagName(‘script’)[ 0]; s.parentNode.insertBefore(ga, s); stevesouders.com/blog/2010/05/11/appendchild-vs-insertbefore/ stevesouders.com/blog/2010/05/12/autohead-my-first-browserscope-user-test/ previously: getElementsByTagName(‘head’)[0]. appendChild(ga) HEAD might not exist Android 1.5, iPhone 3.0, Opera 8.50, Safari 3.2

var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘ == document.location.protocol ? ‘ : ‘ var s = document.getElementsByTagName(‘script’)[ 0]; s.parentNode.insertBefore(ga, s); stevesouders.com/tests/jsorder.php some browsers preserve execution order Firefox 3.6, Opera, OmniWeb

stevesouders.com/tests/jsorder.php

var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘ == document.location.protocol ? ‘ : ‘ var s = document.getElementsByTagName(‘script’)[ 0]; s.parentNode.insertBefore(ga, s); stevesouders.com/tests/jsorder.php some browsers preserve execution order Firefox 3.6, Opera, OmniWeb async=true fixes this (except Opera)

... onload: C B A D

... onload: A script loads sooner beacon fires sooner blocks other async (Opera) may block rendering

... onload: B script loads later beacon fires later blocks fewer async (Opera) may block rendering

... onload: C script loads last beacon fires late doesn’t block async doesn’t block rendering

... onload: script loads after page beacon fires very late doesn’t block async doesn’t block rendering onload fires sooner D

stevesouders.com/blog/2011/12/01/silk-ipad-galaxy-comparison/

stevesouders.com/mobileperf/mobileperfbkm.php

Top 100 Top 1000

@souders