Professional Documents
Culture Documents
Agenda
Front-end engineering
Page lifetime
Browser and web page
FRONT-END ENGINEERING
What is front-end engineering? User interface design and development Content Markup (HTML) Image Style (CSS) Script (JS) Thought process in coding and decision making is very different Mistakes are allowed since everything is interpreted Uniform experience across multiple browser variations and versions Web technologies are slow retiring
Page lifetime
Back-end
request Server-side HTML sent Web page components
Front-end
onload Event handlers
page settles
User interaction, XHRs
request
conception
birth
graduation
marriage
R.I.P
google.com
233ms (~14.7kb)
788ms
487ms
Images
Content / HTML
CSS
Cookies
Ajax Flow
Tree
Flow
Parse
Cache
Paint
Script
Display list Pixels
Paint
Event
Code
Level 1
Make fewer HTTP Requests (reduce number of components) Reduce the number of DOM elements Combine images into sprite or Data URIs and Dynamic Data URIs Flush Buffer Early Minimize DOM Access Avoid Empty Image src Avoid CSS Expressions Choose <link> Over @import Develop Smart Event Handlers
Level 2 Level 2
Minify and Obfuscate JavaScript and CSS Postload components Preload components Avoid 404s Do Not Scale Images in HTML Use GET for Ajax Requests Optimize Images Avoid Redirects Make Ajax Cacheable Minimize Number of iframes Avoid Filters
10
HTML5 / CSS3
11
12
13
Transfer-Encoding: chunked
More info: http://www.phpied.com/progressive-rendering-via-multiple-flushes/
Postload components
Load on demand Deferred load
Preload components
Unconditional, Conditional, Anticipated preload
14
Take Away
Performance is a feature not an after thought What impacts performance ? Solve the right problem Database query/ service call/ IO operation (OR) Front-end Go after user perceived performance
15
References http://developer.yahoo.com/performance/ http://www.bookofspeed.com/ - Stoyan Stefanov High Performance Web Sites - Steve Souders
http://yuilibrary.com/theater/douglas-crockford/
- Douglas Crockford
16