Episodes a shared approach for timing web pages Steve Souders Google Disclaimer: This content does not necessarily reflect.

Slides:



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

Automated Web Performance Testing Before 5pm
CS193H: High Performance Web Sites Lecture 1: Introduction Steve Souders Google
High Performance Web Sites Essential Knowledge for Frontend Engineers
CS193H: High Performance Web Sites Lecture 3: HTTP and the Web 100 Performance Profile Steve Souders Google
CS193H: High Performance Web Sites Lecture 5: Make Fewer HTTP Requests Steve Souders Google
CS193H: High Performance Web Sites Lecture 12: Rule 8 – Make JavaScript and CSS External Steve Souders Google
Monitoring a web sites health. Web Analytics - Definition Measurement of the behavior of visitors to a website Which aspects of the website work towards.
Stevesouders.com/docs/velocity-wpo pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
Surrey Libraries Computer Learning Centres January 2012 Internet Searching Teaching Script Totally New to Computers Internet Searching.
Testing Web Applications & Services Testing Web Applications & Web Services.
An HTTP Extension to provide Timing Data for Performance Measurement Mike McCall, Akamai Technologies.
Copyright © Steven W. Johnson
JavaScript and AJAX Jonathan Foss University of Warwick
PHP Meetup - SEO 2/12/2009. Where to Focus? Ensuring the findability of content Ensuring content is well understood by search engines Maximizing the importance.
The DataFlex Web Framework Changing the Game Stephen W. Meeley Development Team Data Access Worldwide
Benchmark and Java Applet Test Scenario Presentation Outline Introduction to Benchmark Testing Procedure to create the test Benchmark Playback Results.
June 28 th – July 1 st 2006 Implementing Usability: Insights to improve your chances  CFUnited 2007.
Building a new archiving service for everyone!
The Future of Online Learning and Knowledge Networks Stephen Downes Adelaide, Australia September 29, 2004.
Disclaimer: This content does not necessarily reflect the opinions of my employer.
IPv6 end client measurement George Michaelson
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
Blogs & feeds Jim des Rivieres Oct. 16, Grappling with question of how to present Jazz/OSLC data resources “Pure” data resources are presentation-
Online Search Marketing OMI Certification Course – Discovery Documentation.
EWD VistA Update 2010 Rob Tweed M/Gateway Developments Ltd.
NextGen Technology upgrade – Synerizip - Sandeep Kamble.
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
Dynamic Web Pages (Flash, JavaScript)
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125) SPRING 2008 (CVN) NAVID AZIMI (NA2258) Web Platforms, or: How I Learned To Stop Worrying And Love Facebook.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
JQUERY | INTRODUCTION. jQuery  Open source JavaScript library  Simplifies the interactions between  HTML document, or the Document Object Model (DOM),
KITE & MITE Free tools to expand your development arsenal.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
What is RSS? And how do I use it to make my life easier.
Universiti Utara Malaysia Chapter 3 Introduction to ASP.NET 3.5.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
AfterCollege Self-Service Scrape Configuration & Posting Utility Kai Hu Haiyan Wu May 14, Harney 235.
Where does PHP code get executed?. Where does JavaScript get executed?
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.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
DynaRIA: a Tool for Ajax Web Application Comprehension Dipartimento di Informatica e Sistemistica University of Naples “Federico II”, Italy Domenico Amalfitano.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
AFTERCOLLEGE SELF- SERVICE SCRAPE CONFIGURATION AND POSTING UTILITY Kai Hu Haiyan Wu March 17, Cowell 416 Midterm Presentation.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
Organisations and Data Management 1 Data Collection: Why organisations & individuals acquire data & supply data via websites 2Techniques used by organisations.
WorldWide Telescope WWT HTML5 SDK WEB CONTROL WEB CLIENT DEVELOPMENT OVERVIEW RON GILCHRIST (WEB ON GITHUB NOV 7, 2015.
Web Components with Polymer Jeff Tapper Digital
Solving the hard problems of User Experience
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications.
1.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
Wes Preston DEV 202. Audience: Info Workers, Dev A deeper dive into use-cases where client-side rendering (CSR) and SharePoint’s JS Link property can.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Web Programming Java Script-Introduction. What is Javascript? JavaScript is a scripting language using for the Web. JavaScript is a programming language.
JQuery Fundamentals Introduction Tutorial Videos
Essential tools for implementing and testing websites
Benchmark Methodology - Update
Building Regression Tests With PeopleSoft Test Framework
Web analytics principles
Stable and reliable Web Automation
jQuery The Easy JavaScript Nikolay Chochev Technical Trainer
Benchmark Methodology - Update
ASP.NET Module Subtitle.
Presentation transcript:

Episodes a shared approach for timing web pages Steve Souders Google Disclaimer: This content does not necessarily reflect the opinions of my employer.

measuring to onload many current timing frameworks stop at the onload event Keynote, Gomez Fasterfox, YSlow IE, FF, etc. ("Done" in the statusbar) onload doesn't capture "page ready" in Web 2.0 some apps render content above the fold before onload and that is the "page ready" point some apps do critical JS and DOM after onload Ajax actions often don't have onload

measuring Web 2.0 apps: 2 choices manual scripting - identify timing points using scripting tools (Watir, Selenium, KITE, etc.) accuracy (does script author know key points?) high switching costs (eg, moving from Watir to KITE) high maintenance costs redundant work (think # of Google Search scripts created worldwide) synthetic (no real user measurements) programmatic scripting - timing points are marked by JavaScript in the page itself (Jiffy, Gomez, etc.) observer effect reinvent the wheel JS instrumentation in pages has to be changed across frameworks

programmatic scripting is preferred embedding timing in the actual web app reduces maintenance costs and improves accuracy (app developer more likely to know the appropriate timing points and keep them up-to-date) measures real user traffic creating a shared approach resolves many drawbacks no need to reinvent could be used by all companies, frameworks, and tools

a shared approach: scenario 1 web company wants to measure real traffic current approach: write a JS library instrument page beacon back measurements write code to generate reports shared approach: use Episodes instrument page beacon back measurements use existing code to generate reports

a shared approach: scenario 2 web company wants to measure their pages using a service (Keynote, Gomez, WebMetrics, etc.) current approach: create manual scripts (hard to maintain, different from other scripting tools) or use service provider's JS library (different from other JS libraries) run synthetic tests shared approach: pages already instrumented using Episodes; Episodes understood by service's test agent run synthetic tests

a shared approach: scenario 3 web company wants to measure competitors' pages using a service (Keynote, Gomez, WebMetrics, etc.) current approach: create manual scripts (hard to maintain, different from other scripting tools) run synthetic tests shared approach: pages already instrumented using Episodes; Episodes understood by service's test agent run synthetic tests

a shared approach: scenario 4 client apps (browser, dev tool) want to measure pages current approach: measure to the onload event or end of HTTP traffic shared approach: measure Episodes

Episodes – a shared approach ideal vision of what Episodes looks like: uses events to signal episodes window.postMessage("EPISODES:measure:pageready", "*"); supports multiple listeners window.addEventListener("message", callback, false); inserting markers is separate from gathering episodes most of the implementation is built into browsers ( postMessage, addEventListener, aggregating episode times) browsers record when the current page's request began window.navigator.starttime many (most) web sites instrument their pages with Episodes industry-wide agreement on 5-10 Episode names: totaltime, pageready, timetofirstbyte, timefromfirstbyte, etc. measurement service providers support Episodes browsers and dev tools report Episodes

Episodes – code sample window.postMessage("EPISODES:mark:firstbyte", " window.postMessage("EPISODES:measure:backend:starttime:firstbyte", " window.postMessage("EPISODES:mark:jquery.min.js", " window.postMessage("EPISODES:measure:jquery.min.js", " window.onload = function() { window.postMessage("EPISODES:measure:frontend:firstbyte", " window.postMessage("EPISODES:measure:totaltime:starttime", " window.postMessage("EPISODES:done", " }...

Episodes - next steps solicit feedback, get agreement implement JS library using custom events (e.g., YUI) for browsers that don't support postMessage.js hosted from a shared URL for greater caching browser plug-ins (Gears, Firebug, etc.) support window.navigator.starttime measurement frameworks and dev tools start supporting Episodes greater visibility of performance

FAQ Q: Will this weigh down the page making it slower? A: Yes, but less than current approaches that are already getting adoption. As the bulk of implementation moves into the browser, impact will be even less. Q: Won't people game the standardized episode names? A: There are a few dynamics that encourage sites to accurately instrument their pages. They need this so that their own metrics are accurate. And if they game the system bloggers will call them on it. Q: Why would companies want to cooperate? A: Cooperating drives down costs. You can't hide the truth. Competitors already measure each other, it's just inefficient. Raising the cost to measure doesn't hinder the biggest competitors. Q: Where'd you get the name "Episodes"? A: From Doug Crockford. Thanks, Doug!