SlideShare a Scribd company logo
FINDING A BETTER MEASUREMENT YARDSTICK 
RIP ONLOAD
Buddy Brewer 
@bbrewer 
Philip Tellis 
@bluesmoon
ONLOAD BENEFITS 
THE GOOD
• Supported by all browsers 
• Light weight instrumentation 
• Supported by all monitoring tools 
• Able to compare across sites

Recommended for you

Node js
Node jsNode js
Node js

Node.js is a JavaScript runtime built on Chrome's V8 engine that allows JavaScript to run on the server side or as a standalone application. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, as it can handle multiple concurrent connections while waiting for responses. Common uses of Node.js include building web servers, real-time applications, command line tools, and more due to its asynchronous and event-driven nature.

node.js
[1C1]Service Workers
[1C1]Service Workers[1C1]Service Workers
[1C1]Service Workers

The document discusses Service Workers, which allow web applications to work offline by caching assets and responding to fetch events. Some key points covered include: - Service Workers can be used to cache assets on install to enable offline usage. They also allow programmable caching and handling of fetch events. - Other capabilities include background processing and push notifications. The standard is maintained by the W3C. - Service Workers have a lifecycle of registration, installation, and activation. They are scoped to URLs and can handle fetch events for navigation and subresource requests.

deview
A Gentle Introduction to Event Loops
A Gentle Introduction to Event LoopsA Gentle Introduction to Event Loops
A Gentle Introduction to Event Loops

This document discusses event loops and how they work. Event loops allow non-blocking operations by listening for events like network data or user input in parallel. They achieve this through callbacks, select(), threads, or other asynchronous programming techniques. Common examples of event loops include browser JavaScript, game engines, servers, and other applications that perform non-blocking IO operations. Event loops can be complex to work with correctly due to issues like race conditions, so abstractions like promises are recommended.

event loopnon-blocking
ONLOAD DRAWBACKS 
THE BAD
• Easy for developers to abuse 
• Won't work for single page applications 
• Often misses perceived performance
ONLOAD WEIRDNESS 
THE UGLY
• Inconsistent across web sites 
• Users could successfully navigate forward before 
onload

Recommended for you

Docker in Action
Docker in ActionDocker in Action
Docker in Action

A brief introduction for start using Docker! Includes brew2docker (which is still relevant), writing Dockerfile's, building images from scratch etc.

javaspringdocker
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser

To people responsible for the health of web properties, monitoring, measurement, and analysis of real-user experiences is key to delivering a consistent and delightful experience. Drawing on their experience with the open source boomerang project, Philip Tellis and Nic Jansma explore various tools and methods available to measure real-user performance in the browser. Topics include: Available browser APIs: Navigation Timing, Resource Timing (Levels 1 and 2), User Timing, Error Logging, and more Measuring full-page apps Measuring single-page apps RUM SpeedIndex Measuring continuity Hacks when an API isn’t available Avoiding the observer effect Filtering data to get rid of noise Identifying outliers and treating them differently

ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!

I believe ServiceWorker is one of most important specifications for the next web world. Offline and its technologies are very friendly concepts to native application developers. But, now I think front-end developers have to know that for stepping into new paradigm. With ServiceWorker, you can make your web application can run offline, and it also means you can make your web application load extremely fast. I've told about ServiceWorker very briefly in this slide. But you can understand how ServiceWorker runs on. If you want to know its usage, I highly recommend Topeka, which is a polymer demo application at google I/O 2014, that also includes material design and ServiceWorker in inside of it. If you want to know ServiceWorker some more or in detail, I'd like to recommend to read the following, written by Jungkee Song, one of authors of this spec. http://www.slideshare.net/jungkees/service-workers

offlinetopekahtml5
ALTERNATIVES
BROWSER 
STANDARD 
EVENTS
• Load event 
• Front-End time 
• DOMContentLoaded 
• DOMComplete
CUSTOM 
EVENTS

Recommended for you

React.js in real world apps.
React.js in real world apps. React.js in real world apps.
React.js in real world apps.

This document discusses React.js and web development. It begins with an introduction to React.js and its history. It then covers key React concepts like components, JSX syntax, and the virtual DOM. It discusses why the author likes React, describing it as easy to learn and use with true reusable components. It also provides an overview of how the author uses React on both the client-side with tools like Webpack, Babel, and Flux and the server-side with Node.js, Express, MongoDB, and other technologies.

reactreact.jsreactjs
React, Flux and a little bit of Redux
React, Flux and a little bit of ReduxReact, Flux and a little bit of Redux
React, Flux and a little bit of Redux

This document discusses React, Flux, and Redux frameworks. It provides an overview of each: React is a JavaScript library for building user interfaces using reusable components. It uses a virtual DOM for efficient re-rendering. Flux is an architecture for unidirectional data flow between actions, dispatcher, stores, and views. Stores hold application state and logic. Actions describe events. The dispatcher routes actions to stores. Redux takes cues from Flux but with a single immutable state object and pure reducer functions. It is not limited to React and allows functional programming approaches like immutable data and pure functions.

facebookwebreact
Secure my ng-app
Secure my ng-appSecure my ng-app
Secure my ng-app

This document provides a checklist and overview of basic security practices for securing an AngularJS application. It discusses securing the server, preventing man-in-the-middle attacks with HTTPS, preventing XSS with input sanitization, preventing XSRF with anti-CSRF tokens, and preventing JSON injection. The document also provides code examples and explanations of authentication, authorization, escaping user input, and implementing other security best practices in AngularJS.

phpxpertsangularjsngconf
var observer = new MutationObserver(function(mutations) 
{ 
mutations.forEach(function(mutation) 
{ 
[].slice.call(mutation.addedNodes).forEach(function(node) 
{ 
if (node.nodeName === "IMG") 
{ 
if (node.offsetHeight && node.offsetWidth) 
console.log("Image loaded before mutation"); 
else 
node.onload = node.onerror = function(event) { 
console.log("Image " + event.type + "ed"); 
}; 
} 
}); 
}); 
}); 
observer.observe(document, 
{ childList: true, subtree: true }); 
MutationObserver Pattern: https://developer.mozilla.org/en/docs/Web/API/MutationObserver
// create and dispatch the onUsable event 
var event = new CustomEvent(“Usable", 
{“detail":{"foo":true}}); 
element.dispatchEvent(event); 
Chrome, Firefox, Opera, Safari, Mobile Safari 
CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent
(function () 
{ 
function CustomEvent ( event, params ) { 
params = params || 
{ bubbles: false, cancelable: false, detail: undefined }; 
var evt = document.createEvent( 'CustomEvent' ); 
evt.initCustomEvent( event, 
params.bubbles, 
params.cancelable, 
params.detail 
); 
return evt; 
}; 
CustomEvent.prototype = window.Event.prototype; 
window.CustomEvent = CustomEvent; 
})(); 
IE 9 & 10 
CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent
if (document.createEventObject) 
{ 
createCustomEvent = function (e_name, params) 
{ 
var evt = document.createEventObject(); 
evt.type = evt.propertyName = e_name; 
evt.detail = params.detail; 
return evt; 
}; 
} 
Android 2.x 
CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent

Recommended for you

Reliably Measuring Responsiveness
Reliably Measuring ResponsivenessReliably Measuring Responsiveness
Reliably Measuring Responsiveness

Responsiveness to user interaction is crucial for users of web apps, and businesses need to be able to measure responsiveness so they can be confident that their users are happy. Unfortunately, users are regularly bogged down by frustrations such as a delayed "time to interactive” during page load, high or variable input latency on critical interaction events (tap, click, scroll, etc.), and janky animations or scrolling. These negative experiences turn away visitors, affecting the bottom line. Sites that include third-party content (ads, social plugins, etc.) are frequently the worst offenders. The culprit behind all these responsiveness issues are “long tasks," which monopolize the UI thread for extended periods and block other critical tasks from executing. Developers lack the necessary APIs and tools to measure and gain insight into such problems in the wild and are essentially flying blind trying to figure out what the main offenders are. While developers are able to measure some aspects of responsiveness, it’s often not in a reliable, performant, or “good citizen” way, and it’s near impossible to correctly identify the perpetrators. Shubhie Panicker and Nic Jansma share new web performance APIs that enable developers to reliably measure responsiveness and correctly identify first- and third-party culprits for bad experiences. Shubhie and Nic dive into real-user measurement (RUM) web performance APIs they have developed: standardized web platform APIs such as Long Tasks as well as JavaScript APIs that build atop platform APIs, such as Time To Interactive. Shubhie and Nic then compare these measurements to business metrics using real-world data and demonstrate how web developers can detect issues and reliably measure responsiveness in the wild—both at page load and postload—and thwart the culprits, showing you how to gather the data you need to hold your third-party scripts accountable.

jankscrollingperformance
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript

This document discusses JavaScript events and event listeners. It begins with an introduction that defines events as notifications that specific actions occurred, like user or browser actions. Event handlers are scripts that are executed in response to events. Events can be used to trigger JavaScript code that responds to user interactions. The document then provides examples of common event types like onclick, onsubmit, onmouseover, onmouseout, focus, and blur. It also discusses how to add and remove event listeners using addEventListener() and removeEventListener() methods. The document concludes with an example demonstrating how events can be used to change an HTML element in response to user clicks.

Real World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker CachingReal World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker Caching

Over the past year we have seen a lot of excitement around Progressive Web Applications. Browser evangelist are selling developers and business owners on their advantages and promising future. But what is the real story? What are the details to proper execution? What do engineers need to know to make their web sites into Progressive Web Applications that not only meet the minimum criteria, but meet the sales hype? Searching the Pokedex offline is fun, what is the real experience like caching a business application? Caching application assets and data can be complex, especially for larger applications. What to cache, how long to cache and how to cache are all valid questions. Often, in an effort to just ship something, we cache nothing. When we don't cache, we disappoint the customer and miss a key promise of progressive web applications.

html5progressive web applicationsservice worker
WE COULD USE USERTIMING 
• window.performance.mark(“Usable”); 
• Good for setting a time point 
• Does not actually fire an Event, so you have to poll
POLL!
SINGLE PAGE APPS 
• Easy to create a proxy around XMLHttpRequest 
• Does not capture sub-resources required for the 
“single page” 
• Not all XHRs are created equal, so we have an exclude 
list 
• But you can capture HTTP response status
WE COULD USE MRML 
• <BRAINSCAN> tag is useful here 
• Limited Browser support (none) 
• http://ifaq.wap.org/computers/mrml.html

Recommended for you

Javascript dom event
Javascript dom eventJavascript dom event
Javascript dom event

This document discusses DOM (Document Object Model) and events in JavaScript. It covers DOM node retrieval, the document tree structure, child, sibling and parent node relationships, DOM manipulation methods like appendChild and innerHTML, event handling and the bubbling and default behaviors of events.

javascriptdomevent
React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409

Minko is a platform to display, share and interact with 3D content from anywhere, whether you're on a web browser, a workstation, or a device that fits in your pocket. In order to reach those targets with the team we have, we had to go with a cross-platform, hybrid solution that would enable fast UI development with native 3D performances. So we built one, on top of many open source projects, using C++. This talk will discuss our approach for building cross-platform HTML5 interfaces, with a C++/JS bridge to bind DOM APIs, and the tricks we use to make them responsive (spoiler: React is one of them).

3dminkobridge
Taming Clojure applications with Components
Taming Clojure applications with ComponentsTaming Clojure applications with Components
Taming Clojure applications with Components

The document discusses different approaches for managing application lifecycles and dependencies in Clojure applications. It presents atoms, maps, and components as options, evaluating each approach. Components are determined to be the best option, as they provide lifecycle management capabilities, allow dependencies to be defined, and keep application logic together and reload-friendly, while still maintaining pure functions. Some caveats are mentioned, such as components being invasive and records sometimes being weird to work with.

componentsclojure
BEHAVIORAL EVENTS
• Time to scroll 
• Time to click 
• Time to convert
EVALUATION 
CRITERIA
1. Identify a key user behavior 
2. Track this behavior with the timing data 
3. Find the timer that the behavior is most sensitive to

Recommended for you

Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket

Given at YAPC::EU 2012 Dancer + WebSocket + AnyEvent + Twiggy This in *not* a talk about doing a hello world in Dancer, as there are plenty of it. This is a real-life example of using Dancer to address a problem in an elegant and powerful way At $job, we have cpan mirrors. We want them to stay a bit behind the real CPAN for stability, but we have a tool to update modules from the real CPAN to our mirrors. Cool. I wanted to have a web interface to trigger it, and monitor the injection. This problem is not a typical one (blog, wiki, CRUD, etc). Here we have a long running operation that shall happen only one at a time, that generates logs to be displayed, with states that need keeping. In this regard, it's interesting to see how Dancer is versatile enough to address these situations with ease. This talk details how I did that, the technology I used, and the full source code (which is quite short). I used Dancer + WebSocket + AnyEvent + Twiggy + some other stuff. This talk doesn't require any particular knowledge beyond basic Perl, and very basic web server understanding.

perl anyevent dancer twiggy websocket
Vagrant
VagrantVagrant
Vagrant

Vagrant allows developers to easily create and manage virtual machine environments for development. It provides a simple configuration file format and CLI to automate the setup of VMs using various providers like VirtualBox, VMware, AWS, and more. Vagrant can provision VMs using tools like Chef, Puppet, Ansible and Shell scripts. It aims to allow exact clones of production environments for testing and to simplify tasks like testing infrastructure changes.

devopsvagrant
Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learned

This document discusses GWT architectures and lessons learned from GWT development. It covers topics like structuring the UI with widgets, talking to servers, and shifting to rich internet applications. It provides tips for development like using MVP patterns, handling events, avoiding maintainability issues. It also discusses using GWT-RPC and generics for type-safe communications and batching commands for efficiency. Overall it focuses on architectural best practices, common problems, and solutions for building maintainable and performant GWT applications.

historygwtcommand pattern
BOUNCE RATE
CONVERSION RATE
SESSION LENGTH
TRACKING TIMER IMPACT 
70% 
53% 
35% 
18% 
0% 
DOMContentLoaded Front-End DOMComplete Load 
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 
Seconds 
Bounce Rate

Recommended for you

A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js

This document provides a complete guide to Node.js, covering installation methods, checking installation, modules, NPM, events, streams, and persisting data. It discusses installing Node.js from nodejs.org, using a version manager like NVM, or compiling from source. It also covers creating a basic web server, reading and writing files, uploading files, and using Socket.IO for real-time applications.

node.jslearn-nodecomplete-node.js
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS

This document provides an overview and introduction to the webOS platform. It discusses the webOS architecture including application architecture using stages and scenes. It covers building a basic "Destroy World" app using the command line tools. It also discusses the webOS emulator, advanced APIs like camera, storage and accelerometer access. Finally it discusses submitting apps to the webOS app catalog and a promotion for hot new apps.

palmdevwebosjavascript
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013

The document discusses improving performance for mobile web experiences. It begins by outlining some of the key reasons why mobile web is typically slower than desktop, such as network latency and bandwidth limitations. It then examines the current state of the mobile web, including average page sizes and number of requests. The document proposes that responsive design alone is not enough to optimize for mobile and introduces the concept of adaptive or responsive design with server-side components (RESS). Some techniques discussed for RESS include device detection, image optimization, and CSS processing to remove unnecessary styles. The overall message is that a hybrid approach considering server capabilities alongside responsive design can help create faster, lighter mobile web experiences.

ressadaptive designresponsive web design
2 sec 8 sec Slope 
DOMContentLoaded 44.79% 61.72% 2.82% / sec 
Front-End 44.24% 49.60% 0.89% / sec 
DOMComplete 40.84% 57.01% 2.70% / sec 
Load 39.41% 55.53% 2.69% / sec
2 sec 8 sec Slope 
DOMContentLoaded 44.79% 61.72% 2.82% / sec 
Front-End 44.24% 49.60% 0.89% / sec 
DOMComplete 40.84% 57.01% 2.70% / sec 
Load 39.41% 55.53% 2.69% / sec
2 sec 8 sec Slope 
DOMContentLoaded 44.79% 61.72% 2.82% / sec 
Front-End 44.24% 49.60% 0.89% / sec 
DOMComplete 40.84% 57.01% 2.70% / sec 
Load 39.41% 55.53% 2.69% / sec
I S T H I S T H E 
ANSWER?

Recommended for you

Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote

This document provides information about an upcoming Box Guy event, including sponsors, speakers and sessions. On the first day, there will be a presentation on FusionReactor at 12:30pm and a podcast at 6:30pm. The second day will feature a lunch with Pete Freitag at 12:30pm. Attendees can enter raffles by tweeting with #intothebox. The event also promotes Ortus' consulting services and modernization approach for CFML applications.

cfmlcoldfusionweb development
Building performance into the new yahoo homepage presentation
Building performance into the new yahoo  homepage presentationBuilding performance into the new yahoo  homepage presentation
Building performance into the new yahoo homepage presentation

Nicholas Zakas presented on optimizing the performance of the Yahoo homepage redesign from 2010. The new design added significant functionality but also increased page size and complexity, threatening performance. Areas of focus included reducing time to interactivity, improving Ajax responsiveness, and managing perceived performance. Through techniques like progressive rendering, non-blocking JavaScript loading, and indicating loading states, performance was improved and maintained users' perception of speed. The redesign achieved onload times of ~2.5 seconds, down from ~5 previously, while perceived performance matched the previous version.

yahooo home pagefront-endnicholas czakas
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage

Overhauling one of the most visited web sites in the world is a major task, and add on top of it the pressure of keeping performance the same while adding a ton of new features, and you have quite a task. Learn how the Yahoo! homepage team achieved performance parity with the previous version even while adding a ton of new features.

yahoojavascriptperformance
UNITED STATES VS AUSTRALIA 
60% 
45% 
30% 
15% 
0% 
2 3 4 5 6 7 8 9 10 11 12 
US AU
SUMMARY 
• There is probably no single answer 
• Depends on your users and what you want them to do 
• There may even be multiple answers for one web site 
• Perhaps the best we can hope for is to find a 
consistent methodology for determining what “done” 
means
WE’LL PROVIDE THE RUM, AND SOME GO PROS 
SOASTA WRAP PARTY
ATTRIBUTIONS 
https://www.flickr.com/photos/jcubic/14091200977 (Tombstone) 
https://www.flickr.com/photos/wasteofspace/5961093609 (He-Man) 
https://www.flickr.com/photos/usagent/3111087806 (Skeletor) 
https://www.flickr.com/photos/stoic1/2693944218 (Tung Lashor) 
https://www.flickr.com/photos/marfis75/8031936764 (Two Exits) 
https://www.flickr.com/photos/exfordy/222888541 (Customized Citroën) 
https://www.flickr.com/photos/bluesmoon/10271376176/ (Pat and Steve)

Recommended for you

Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet

This document discusses using JavaScript on the server side with Node.js and the YUI framework. It begins by explaining why server-side JavaScript is useful and discusses JavaScript runtimes like V8, SpiderMonkey, and Rhino. It then covers Node.js, CommonJS frameworks, and how to use YUI modules on the server by enabling YUI's module loader. Examples are provided for accessing remote data, rendering HTML on the server, and implementing progressive enhancement.

wdxnodejsjavascript
Top100summit 谷歌-scott-improve your automated web application testing
Top100summit  谷歌-scott-improve your automated web application testingTop100summit  谷歌-scott-improve your automated web application testing
Top100summit 谷歌-scott-improve your automated web application testing

This document discusses improving automated web application testing. It begins with an introduction and agenda. Some key points: - Testing at Google expects test code quality to match production code quality. Tests must be maintainable and meet engineering standards. - The present focuses on Selenium/WebDriver automation best practices and things to avoid. Base classes and locator organization can help improve test robustness and maintainability. - The future may include more exploratory testing tools like WebTestingExplorer for automated exploratory testing. Overall the document provides guidance on using Selenium/WebDriver for web application testing in a best practices way, focusing on test code quality, maintainability, and anticipating future changes. It emphasizes organizing tests through

Fast Cordova applications
Fast Cordova applicationsFast Cordova applications
Fast Cordova applications

Fast Cordova applications This document provides techniques for improving the performance of Cordova applications. It discusses ways to use the DOM efficiently by caching elements, minimizing reflows, and interacting with the DOM less frequently. It also covers optimizing events, network usage, CSS features, and memory management. The overall goal is to understand what makes a Cordova app fast and provide techniques to improve performance.

html5cordovamobile application development

More Related Content

What's hot

Service workers
Service workersService workers
Service workers
Pavel Zhytko
 
Put kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows servicesPut kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows services
Christian Dalager
 
Instant and offline apps with Service Worker
Instant and offline apps with Service WorkerInstant and offline apps with Service Worker
Instant and offline apps with Service Worker
Chang W. Doh
 
Node js
Node jsNode js
[1C1]Service Workers
[1C1]Service Workers[1C1]Service Workers
[1C1]Service Workers
NAVER D2
 
A Gentle Introduction to Event Loops
A Gentle Introduction to Event LoopsA Gentle Introduction to Event Loops
A Gentle Introduction to Event Loops
deepfountainconsulting
 
Docker in Action
Docker in ActionDocker in Action
Docker in Action
Alper Kanat
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser
Nicholas Jansma
 
ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!
Chang W. Doh
 
React.js in real world apps.
React.js in real world apps. React.js in real world apps.
React.js in real world apps.
Emanuele DelBono
 
React, Flux and a little bit of Redux
React, Flux and a little bit of ReduxReact, Flux and a little bit of Redux
React, Flux and a little bit of Redux
Ny Fanilo Andrianjafy, B.Eng.
 
Secure my ng-app
Secure my ng-appSecure my ng-app
Secure my ng-app
M A Hossain Tonu
 
Reliably Measuring Responsiveness
Reliably Measuring ResponsivenessReliably Measuring Responsiveness
Reliably Measuring Responsiveness
Nicholas Jansma
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
ShahDhruv21
 
Real World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker CachingReal World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker Caching
Chris Love
 
Javascript dom event
Javascript dom eventJavascript dom event
Javascript dom event
Bunlong Van
 
React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409
Minko3D
 
Taming Clojure applications with Components
Taming Clojure applications with ComponentsTaming Clojure applications with Components
Taming Clojure applications with Components
David Dossot
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
Damien Krotkine
 
Vagrant
VagrantVagrant
Vagrant
Rob Kinyon
 

What's hot (20)

Service workers
Service workersService workers
Service workers
 
Put kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows servicesPut kajakken på hylden - og få sexede windows services
Put kajakken på hylden - og få sexede windows services
 
Instant and offline apps with Service Worker
Instant and offline apps with Service WorkerInstant and offline apps with Service Worker
Instant and offline apps with Service Worker
 
Node js
Node jsNode js
Node js
 
[1C1]Service Workers
[1C1]Service Workers[1C1]Service Workers
[1C1]Service Workers
 
A Gentle Introduction to Event Loops
A Gentle Introduction to Event LoopsA Gentle Introduction to Event Loops
A Gentle Introduction to Event Loops
 
Docker in Action
Docker in ActionDocker in Action
Docker in Action
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser
 
ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!
 
React.js in real world apps.
React.js in real world apps. React.js in real world apps.
React.js in real world apps.
 
React, Flux and a little bit of Redux
React, Flux and a little bit of ReduxReact, Flux and a little bit of Redux
React, Flux and a little bit of Redux
 
Secure my ng-app
Secure my ng-appSecure my ng-app
Secure my ng-app
 
Reliably Measuring Responsiveness
Reliably Measuring ResponsivenessReliably Measuring Responsiveness
Reliably Measuring Responsiveness
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
 
Real World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker CachingReal World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker Caching
 
Javascript dom event
Javascript dom eventJavascript dom event
Javascript dom event
 
React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409React in Native Apps - Meetup React - 20150409
React in Native Apps - Meetup React - 20150409
 
Taming Clojure applications with Components
Taming Clojure applications with ComponentsTaming Clojure applications with Components
Taming Clojure applications with Components
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
 
Vagrant
VagrantVagrant
Vagrant
 

Similar to 2014 11-18 rip onload

Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learned
pgt technology scouting GmbH
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
Prabin Silwal
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
fpatton
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013
Jon Arne Sæterås
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
Ortus Solutions, Corp
 
Building performance into the new yahoo homepage presentation
Building performance into the new yahoo  homepage presentationBuilding performance into the new yahoo  homepage presentation
Building performance into the new yahoo homepage presentation
masudakram
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
Nicholas Zakas
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet
Tom Croucher
 
Top100summit 谷歌-scott-improve your automated web application testing
Top100summit  谷歌-scott-improve your automated web application testingTop100summit  谷歌-scott-improve your automated web application testing
Top100summit 谷歌-scott-improve your automated web application testing
drewz lin
 
Fast Cordova applications
Fast Cordova applicationsFast Cordova applications
Fast Cordova applications
Ivano Malavolta
 
Html5
Html5Html5
Html5
Sai Anjani
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
Adam Lu
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance Patterns
Stoyan Stefanov
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
DevConFu
 
Getting Reactive with CycleJS and XStream
Getting Reactive with CycleJS and XStream Getting Reactive with CycleJS and XStream
Getting Reactive with CycleJS and XStream
TechExeter
 
ReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page ApplicationsReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UI
jeresig
 
Node azure
Node azureNode azure
Node azure
Emanuele DelBono
 
Asynchronous programming patterns in Perl
Asynchronous programming patterns in PerlAsynchronous programming patterns in Perl
Asynchronous programming patterns in Perl
deepfountainconsulting
 
GWT Architectures and Lessons Learned (WJAX 2013)
GWT Architectures and Lessons Learned (WJAX 2013)GWT Architectures and Lessons Learned (WJAX 2013)
GWT Architectures and Lessons Learned (WJAX 2013)
pgt technology scouting GmbH
 

Similar to 2014 11-18 rip onload (20)

Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learned
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013Mobile is slow - Over the Air 2013
Mobile is slow - Over the Air 2013
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
 
Building performance into the new yahoo homepage presentation
Building performance into the new yahoo  homepage presentationBuilding performance into the new yahoo  homepage presentation
Building performance into the new yahoo homepage presentation
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
 
Server Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet
 
Top100summit 谷歌-scott-improve your automated web application testing
Top100summit  谷歌-scott-improve your automated web application testingTop100summit  谷歌-scott-improve your automated web application testing
Top100summit 谷歌-scott-improve your automated web application testing
 
Fast Cordova applications
Fast Cordova applicationsFast Cordova applications
Fast Cordova applications
 
Html5
Html5Html5
Html5
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance Patterns
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
 
Getting Reactive with CycleJS and XStream
Getting Reactive with CycleJS and XStream Getting Reactive with CycleJS and XStream
Getting Reactive with CycleJS and XStream
 
ReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page ApplicationsReactJS.NET - Fast and Scalable Single Page Applications
ReactJS.NET - Fast and Scalable Single Page Applications
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UI
 
Node azure
Node azureNode azure
Node azure
 
Asynchronous programming patterns in Perl
Asynchronous programming patterns in PerlAsynchronous programming patterns in Perl
Asynchronous programming patterns in Perl
 
GWT Architectures and Lessons Learned (WJAX 2013)
GWT Architectures and Lessons Learned (WJAX 2013)GWT Architectures and Lessons Learned (WJAX 2013)
GWT Architectures and Lessons Learned (WJAX 2013)
 

More from Buddy Brewer

Taking the Guesswork Out of Performance Budgets
Taking the Guesswork Out of Performance BudgetsTaking the Guesswork Out of Performance Budgets
Taking the Guesswork Out of Performance Budgets
Buddy Brewer
 
2015 02-19 eTail West Chairmans Remarks
2015 02-19 eTail West Chairmans Remarks2015 02-19 eTail West Chairmans Remarks
2015 02-19 eTail West Chairmans Remarks
Buddy Brewer
 
2014 06-25 velocity sc natives are getting restless
2014 06-25 velocity sc natives are getting restless2014 06-25 velocity sc natives are getting restless
2014 06-25 velocity sc natives are getting restless
Buddy Brewer
 
2014 06-23 velocity sc beyond page metrics
2014 06-23 velocity sc beyond page metrics2014 06-23 velocity sc beyond page metrics
2014 06-23 velocity sc beyond page metrics
Buddy Brewer
 
The 3.5s Dash for Attention and Other Stuff We Found in RUM
The 3.5s Dash for Attention and Other Stuff We Found in RUMThe 3.5s Dash for Attention and Other Stuff We Found in RUM
The 3.5s Dash for Attention and Other Stuff We Found in RUM
Buddy Brewer
 
Tying web performance data to human behavior
Tying web performance data to human behaviorTying web performance data to human behavior
Tying web performance data to human behavior
Buddy Brewer
 
RUM for Breakfast - distilling insights from the noise
RUM for Breakfast - distilling insights from the noiseRUM for Breakfast - distilling insights from the noise
RUM for Breakfast - distilling insights from the noise
Buddy Brewer
 
High Speed Web Sites At Scale
High Speed Web Sites At ScaleHigh Speed Web Sites At Scale
High Speed Web Sites At Scale
Buddy Brewer
 

More from Buddy Brewer (8)

Taking the Guesswork Out of Performance Budgets
Taking the Guesswork Out of Performance BudgetsTaking the Guesswork Out of Performance Budgets
Taking the Guesswork Out of Performance Budgets
 
2015 02-19 eTail West Chairmans Remarks
2015 02-19 eTail West Chairmans Remarks2015 02-19 eTail West Chairmans Remarks
2015 02-19 eTail West Chairmans Remarks
 
2014 06-25 velocity sc natives are getting restless
2014 06-25 velocity sc natives are getting restless2014 06-25 velocity sc natives are getting restless
2014 06-25 velocity sc natives are getting restless
 
2014 06-23 velocity sc beyond page metrics
2014 06-23 velocity sc beyond page metrics2014 06-23 velocity sc beyond page metrics
2014 06-23 velocity sc beyond page metrics
 
The 3.5s Dash for Attention and Other Stuff We Found in RUM
The 3.5s Dash for Attention and Other Stuff We Found in RUMThe 3.5s Dash for Attention and Other Stuff We Found in RUM
The 3.5s Dash for Attention and Other Stuff We Found in RUM
 
Tying web performance data to human behavior
Tying web performance data to human behaviorTying web performance data to human behavior
Tying web performance data to human behavior
 
RUM for Breakfast - distilling insights from the noise
RUM for Breakfast - distilling insights from the noiseRUM for Breakfast - distilling insights from the noise
RUM for Breakfast - distilling insights from the noise
 
High Speed Web Sites At Scale
High Speed Web Sites At ScaleHigh Speed Web Sites At Scale
High Speed Web Sites At Scale
 

Recently uploaded

一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
taqyea
 
Founders Of Digital World Social Media..
Founders Of Digital World Social Media..Founders Of Digital World Social Media..
Founders Of Digital World Social Media..
jom pom
 
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
taqyea
 
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
taqyea
 
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
taqyea
 
Future Trends What's Next for UI UX Design on Websites
Future Trends What's Next for UI UX Design on WebsitesFuture Trends What's Next for UI UX Design on Websites
Future Trends What's Next for UI UX Design on Websites
Serva AppLabs
 
Corporate Minimal Newspaper Headline Style Newsletter.pptx
Corporate Minimal Newspaper Headline Style Newsletter.pptxCorporate Minimal Newspaper Headline Style Newsletter.pptx
Corporate Minimal Newspaper Headline Style Newsletter.pptx
byubyu7
 
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
taqyea
 
2023. Archive - Gigabajtos selfpublisher homepage
2023. Archive - Gigabajtos selfpublisher homepage2023. Archive - Gigabajtos selfpublisher homepage
2023. Archive - Gigabajtos selfpublisher homepage
Zsolt Nemeth
 
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
taqyea
 
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
taqyea
 
About Alibaba company and brief general information regarding how to trade on...
About Alibaba company and brief general information regarding how to trade on...About Alibaba company and brief general information regarding how to trade on...
About Alibaba company and brief general information regarding how to trade on...
Erkinjon Erkinov
 
University of Otago degree offer diploma Transcript
University of Otago degree offer diploma TranscriptUniversity of Otago degree offer diploma Transcript
University of Otago degree offer diploma Transcript
ubufe
 
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
taqyea
 
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
taqyea
 
seo proposal | Kiyado Innovations LLP pdf
seo proposal | Kiyado Innovations LLP  pdfseo proposal | Kiyado Innovations LLP  pdf
seo proposal | Kiyado Innovations LLP pdf
diyakiyado
 
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
taqyea
 
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
taqyea
 
Megalive99 Situs Betting Online Gacor Terpercaya
Megalive99 Situs Betting Online Gacor TerpercayaMegalive99 Situs Betting Online Gacor Terpercaya
Megalive99 Situs Betting Online Gacor Terpercaya
Megalive99
 
Tarun Gaur On Data Breaches and Privacy Fears
Tarun Gaur On Data Breaches and Privacy FearsTarun Gaur On Data Breaches and Privacy Fears
Tarun Gaur On Data Breaches and Privacy Fears
Tarun Gaur
 

Recently uploaded (20)

一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
一比一原版(bristol毕业证书)英国布里斯托大学毕业证如何办理
 
Founders Of Digital World Social Media..
Founders Of Digital World Social Media..Founders Of Digital World Social Media..
Founders Of Digital World Social Media..
 
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
 
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
一比一原版(heriotwatt毕业证书)英国赫瑞瓦特大学毕业证如何办理
 
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
一比一原版(bu毕业证书)英国伯恩茅斯大学毕业证如何办理
 
Future Trends What's Next for UI UX Design on Websites
Future Trends What's Next for UI UX Design on WebsitesFuture Trends What's Next for UI UX Design on Websites
Future Trends What's Next for UI UX Design on Websites
 
Corporate Minimal Newspaper Headline Style Newsletter.pptx
Corporate Minimal Newspaper Headline Style Newsletter.pptxCorporate Minimal Newspaper Headline Style Newsletter.pptx
Corporate Minimal Newspaper Headline Style Newsletter.pptx
 
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)英国布鲁内尔大学毕业证如何办理
 
2023. Archive - Gigabajtos selfpublisher homepage
2023. Archive - Gigabajtos selfpublisher homepage2023. Archive - Gigabajtos selfpublisher homepage
2023. Archive - Gigabajtos selfpublisher homepage
 
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
一比一原版(city毕业证书)英国剑桥大学毕业证如何办理
 
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
一比一原版(london毕业证书)英国伦敦大学毕业证如何办理
 
About Alibaba company and brief general information regarding how to trade on...
About Alibaba company and brief general information regarding how to trade on...About Alibaba company and brief general information regarding how to trade on...
About Alibaba company and brief general information regarding how to trade on...
 
University of Otago degree offer diploma Transcript
University of Otago degree offer diploma TranscriptUniversity of Otago degree offer diploma Transcript
University of Otago degree offer diploma Transcript
 
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
一比一原版(oregon毕业证书)俄勒冈大学毕业证如何办理
 
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
一比一原版澳洲巴拉特大学毕业证(utas毕业证书)如何办理
 
seo proposal | Kiyado Innovations LLP pdf
seo proposal | Kiyado Innovations LLP  pdfseo proposal | Kiyado Innovations LLP  pdf
seo proposal | Kiyado Innovations LLP pdf
 
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
一比一原版(kcl毕业证书)英国伦敦国王学院毕业证如何办理
 
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
一比一原版(ubc毕业证书)英属哥伦比亚大学毕业证如何办理
 
Megalive99 Situs Betting Online Gacor Terpercaya
Megalive99 Situs Betting Online Gacor TerpercayaMegalive99 Situs Betting Online Gacor Terpercaya
Megalive99 Situs Betting Online Gacor Terpercaya
 
Tarun Gaur On Data Breaches and Privacy Fears
Tarun Gaur On Data Breaches and Privacy FearsTarun Gaur On Data Breaches and Privacy Fears
Tarun Gaur On Data Breaches and Privacy Fears
 

2014 11-18 rip onload

  • 1. FINDING A BETTER MEASUREMENT YARDSTICK RIP ONLOAD
  • 2. Buddy Brewer @bbrewer Philip Tellis @bluesmoon
  • 4. • Supported by all browsers • Light weight instrumentation • Supported by all monitoring tools • Able to compare across sites
  • 6. • Easy for developers to abuse • Won't work for single page applications • Often misses perceived performance
  • 8. • Inconsistent across web sites • Users could successfully navigate forward before onload
  • 11. • Load event • Front-End time • DOMContentLoaded • DOMComplete
  • 13. var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { [].slice.call(mutation.addedNodes).forEach(function(node) { if (node.nodeName === "IMG") { if (node.offsetHeight && node.offsetWidth) console.log("Image loaded before mutation"); else node.onload = node.onerror = function(event) { console.log("Image " + event.type + "ed"); }; } }); }); }); observer.observe(document, { childList: true, subtree: true }); MutationObserver Pattern: https://developer.mozilla.org/en/docs/Web/API/MutationObserver
  • 14. // create and dispatch the onUsable event var event = new CustomEvent(“Usable", {“detail":{"foo":true}}); element.dispatchEvent(event); Chrome, Firefox, Opera, Safari, Mobile Safari CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent
  • 15. (function () { function CustomEvent ( event, params ) { params = params || { bubbles: false, cancelable: false, detail: undefined }; var evt = document.createEvent( 'CustomEvent' ); evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); return evt; }; CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; })(); IE 9 & 10 CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent
  • 16. if (document.createEventObject) { createCustomEvent = function (e_name, params) { var evt = document.createEventObject(); evt.type = evt.propertyName = e_name; evt.detail = params.detail; return evt; }; } Android 2.x CustomEvent Pattern: https://developer.mozilla.org/en/docs/Web/API/CustomEvent
  • 17. WE COULD USE USERTIMING • window.performance.mark(“Usable”); • Good for setting a time point • Does not actually fire an Event, so you have to poll
  • 18. POLL!
  • 19. SINGLE PAGE APPS • Easy to create a proxy around XMLHttpRequest • Does not capture sub-resources required for the “single page” • Not all XHRs are created equal, so we have an exclude list • But you can capture HTTP response status
  • 20. WE COULD USE MRML • <BRAINSCAN> tag is useful here • Limited Browser support (none) • http://ifaq.wap.org/computers/mrml.html
  • 22. • Time to scroll • Time to click • Time to convert
  • 24. 1. Identify a key user behavior 2. Track this behavior with the timing data 3. Find the timer that the behavior is most sensitive to
  • 28. TRACKING TIMER IMPACT 70% 53% 35% 18% 0% DOMContentLoaded Front-End DOMComplete Load 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 Seconds Bounce Rate
  • 29. 2 sec 8 sec Slope DOMContentLoaded 44.79% 61.72% 2.82% / sec Front-End 44.24% 49.60% 0.89% / sec DOMComplete 40.84% 57.01% 2.70% / sec Load 39.41% 55.53% 2.69% / sec
  • 30. 2 sec 8 sec Slope DOMContentLoaded 44.79% 61.72% 2.82% / sec Front-End 44.24% 49.60% 0.89% / sec DOMComplete 40.84% 57.01% 2.70% / sec Load 39.41% 55.53% 2.69% / sec
  • 31. 2 sec 8 sec Slope DOMContentLoaded 44.79% 61.72% 2.82% / sec Front-End 44.24% 49.60% 0.89% / sec DOMComplete 40.84% 57.01% 2.70% / sec Load 39.41% 55.53% 2.69% / sec
  • 32. I S T H I S T H E ANSWER?
  • 33. UNITED STATES VS AUSTRALIA 60% 45% 30% 15% 0% 2 3 4 5 6 7 8 9 10 11 12 US AU
  • 34. SUMMARY • There is probably no single answer • Depends on your users and what you want them to do • There may even be multiple answers for one web site • Perhaps the best we can hope for is to find a consistent methodology for determining what “done” means
  • 35. WE’LL PROVIDE THE RUM, AND SOME GO PROS SOASTA WRAP PARTY
  • 36. ATTRIBUTIONS https://www.flickr.com/photos/jcubic/14091200977 (Tombstone) https://www.flickr.com/photos/wasteofspace/5961093609 (He-Man) https://www.flickr.com/photos/usagent/3111087806 (Skeletor) https://www.flickr.com/photos/stoic1/2693944218 (Tung Lashor) https://www.flickr.com/photos/marfis75/8031936764 (Two Exits) https://www.flickr.com/photos/exfordy/222888541 (Customized Citroën) https://www.flickr.com/photos/bluesmoon/10271376176/ (Pat and Steve)