SlideShare a Scribd company logo
1 of 65
fast by default http://stevesouders.com/docs/fronteers-20091105.pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
introduction			4 Progressive Rendering		7 Progressive Enhancement	5 Make fewer HTTP requests	9 Use a CDN			7 Add an Expires header		8 Gzip components		9 Put stylesheets at the top	6 Put scripts at the bottom		7 Avoid CSS expressions		4 Make JS and CSS external	5 Reduce DNS lookups		9 Minify JS			4 Avoid redirects			9 Remove duplicate scripts	2 Configure ETags		8 Make AJAX cacheable		6 Splitting the initial payload	3 Loading scripts without blocking	9 Coupling asynchronous scripts	7 Positioning inline scripts		6 Sharding dominant domains	5 Flushing the document early	8 Using iframes sparingly		4 Simplifying CSS Selectors	9 Understanding Ajax performance	5 Creating responsive web apps	7 Writing efficient JavaScript	9 Scaling with Comet		8 Going beyond gzipping		7 Optimizing images		9 New Async Techniques		3 YSlow				2 Page Speed			2 Performance & the Bottom Line	5 Fast By Default			6 Stanford CS193H		4 Don't use @import		4 F5 & XHR			5 SpriteMe			3 Browserscope			4 HTTP Archive Format		2 @font-face Performance		2 SpeedGeeks			2 Velocity OLC			2 Firebug Net Panel		4 Takeaways			1 Thank You!			0 introduction			4 Progressive Rendering		7 Progressive Enhancement	5 Make fewer HTTP requests	9 Use a CDN			7 Add an Expires header		8 Gzip components		9 Put stylesheets at the top	6 Put scripts at the bottom		7 Avoid CSS expressions		4 Make JS and CSS external	5 Reduce DNS lookups		9 Minify JS			4 Avoid redirects			9 Remove duplicate scripts	2 Configure ETags		8 Make AJAX cacheable		6 Splitting the initial payload	3 Loading scripts without blocking	9 Coupling asynchronous scripts	7 Positioning inline scripts		6 Sharding dominant domains	5 Flushing the document early	8 Using iframes sparingly		4 introduction			4 Progressive Rendering		7 Progressive Enhancement	5 Make fewer HTTP requests	9 Use a CDN			7 Add an Expires header		8 Gzip components		9 Put stylesheets at the top	6 Put scripts at the bottom		7 Avoid CSS expressions		4 Make JS and CSS external	5 Reduce DNS lookups		9 Minify JS			4 Avoid redirects			9 Remove duplicate scripts	2 Configure ETags		8 Make AJAX cacheable		6 Splitting the initial payload	3 Loading scripts without blocking	9 Coupling asynchronous scripts	7 Positioning inline scripts		6 Sharding dominant domains	5 Flushing the document early	8 Using iframes sparingly		4 Simplifying CSS Selectors	9 Understanding Ajax performance	5 Creating responsive web apps	7 Writing efficient JavaScript	9 Scaling with Comet		8 Going beyond gzipping		7 Optimizing images		9 New Async Techniques		3 YSlow				2 Page Speed			2 Performance & the Bottom Line	5 Fast By Default			6 Stanford CS193H		4 Don't use @import		4 F5 & XHR			5 SpriteMe			3 Browserscope			4 HTTP Archive Format		2 @font-face Performance		2 SpeedGeeks			2 Velocity OLC			2 Firebug Net Panel		4 Takeaways			1 Thank You!			0 Simplifying CSS Selectors	9 Understanding Ajax performance	5 Creating responsive web apps	7 Writing efficient JavaScript	9 Scaling with Comet		8 Going beyond gzipping		7 Optimizing images		9 New Async Techniques		3 YSlow				2 Page Speed			2 Performance & the Bottom Line	5 Fast By Default			6 Stanford CS193H		4 Don't use @import		4 F5 & XHR			5 SpriteMe			3 Browserscope			4 HTTP Archive Format		2 @font-face Performance		2 SpeedGeeks			2 Velocity OLC			2 Firebug Net Panel		4 Takeaways			1 Thank You!			0 256 163 79 60
GMail Mobile: http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html SproutCore: http://blog.sproutcore.com/post/225219087/faster-loading-through-eval Google, Bing biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/8523  Yahoo! biz metrics: http://www.slideshare.net/stoyan/yslow-20-presentation Shopzilla biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/7709 Netflix outbound traffic: http://en.oreilly.com/velocity2008/public/schedule/detail/3632 Google, Bing charts: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business Aptimize WAX: http://blogs.msdn.com/sharepoint/archive/2009/09/28/how-we-did-it-speeding-up-sharepoint-microsoft-com.aspx Strangeloop Networks: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business SproutCore: http://blog.sproutcore.com/post/196959232/how-sproutcore-makes-your-app-run-faster HTTP Archive Format: http://www.stevesouders.com/blog/2009/10/19/http-archive-specification-firebug-and-httpwatch/ @font-face: http://www.stevesouders.com/blog/2009/10/13/font-face-and-performance/
17% 83% iGoogle, primed cache the importance of frontend performance 9% 91% iGoogle, empty cache
Make fewer HTTP requests Use a CDN Add an Expires header Gzip components Put stylesheets at the top Put scripts at the bottom Avoid CSS expressions Make JS and CSS external Reduce DNS lookups Minify JS Avoid redirects Remove duplicate scripts Configure ETags Make AJAX cacheable 14 Rules
Even Faster Web Sites Splitting the initial payload Loading scripts without blocking Coupling asynchronous scripts Positioning inline scripts Sharding dominant domains Flushing the document early Using iframes sparingly Simplifying CSS Selectors Understanding Ajax performance..........Doug Crockford Creating responsive web apps............Ben Galbraith, Dion Almaer Writing efficient JavaScript.............Nicholas Zakas Scaling with Comet.....................Dylan Schiemann Going beyond gzipping...............Tony Gentilcore Optimizing images...................Stoyan Stefanov, Nicole Sullivan
What makes sites feel slow ?
Google Mail
Google Docs Google Docs
AOL
Twitter
ESPN
Best Buy
IKEA
CNN
(lack of) Progressive Rendering
Search
WebPagetest.org VA, UK, NZ IE7, IE8 Dial, DSL, FIOS empty, empty & primed quad core Pat Meenan (AOL)
News
Shopping
Sports
Progressive Enhancement deliver HTML defer JS avoid DOM decorate later
Progressive Enhancement  Progressive Rendering
Yahoo! Wikipedia eBay AOL MySpace YouTube Facebook Why focus on JavaScript?
scripts block <script src="A.js"> blocks parallel downloads and rendering 9 secs: IE 6-7, FF 3.0, Chr 1, Op 9-10, Saf 3 7 secs: IE 8, FF 3.5, Chr3, Saf 4
26% avg 252K avg initial payload and execution
splitting the initial payload split your JavaScript between what's needed to render the page and everything else defer "everything else" split manually (Page Speed), automatically (Microsoft Doloto) load scripts without blocking – how?
MSN Scripts and other resources downloaded in parallel! How? Secret sauce?! var p= g.getElementsByTagName("HEAD")[0]; var c=g.createElement("script"); c.type="text/javascript"; c.onreadystatechange=n; c.onerror=c.onload=k; c.src=e; p.appendChild(c) MSN.com: parallel scripts
Loading Scripts Without Blocking XHR Eval XHR Injection Script in Iframe Script DOM Element Script Defer document.write Script Tag
XHR Eval varxhrObj = getXHRObject(); xhrObj.onreadystatechange =    function() {      if ( xhrObj.readyState != 4 ) return; eval(xhrObj.responseText);   }; xhrObj.open('GET', 'A.js', true); xhrObj.send(''); script & page must be same domain massage script?
XHR Injection varxhrObj = getXHRObject(); xhrObj.onreadystatechange =    function() {      if ( xhrObj.readyState != 4 ) return; var se=document.createElement('script'); document.getElementsByTagName('head')         [0].appendChild(se); se.text = xhrObj.responseText;   }; xhrObj.open('GET', 'A.js', true); xhrObj.send(''); script must have same domain as main page
Script in Iframe <iframe src='A.html' width=0 height=0  frameborder=0 id=frame1></iframe>  iframe must have same domain as main page must refactor script: // access iframe from main page window.frames[0].createNewDiv(); // access main page from iframe parent.document.createElement('div');
Script DOM Element var se = document.createElement('script'); se.src = 'http://anydomain.com/A.js'; document.getElementsByTagName('head') [0].appendChild(se);  script & page domains can differ no need to massage JavaScript may not preserve execution order
GMail Mobile <script type="text/javascript"> /* var ...  */ </script> get script DOM element's text remove comments eval() when invoked inline or iframe awesome for prefetching JS that might (not) be needed
SproutCore var module1 = "..."; var module2 = "..."; eval() modules as needed 2nd fastest downloading 2nd fastest loading symbols best alternative
<script defer src='A.js'></script> supported in IE and FF 3.1+ script and main page domains can differ no need to refactor JavaScript Script Defer
document.write("<script type='text/javascript' src='A.js'> <script>"); parallelization only works in IE parallel downloads for scripts, nothing else all document.writes must be in same script block document.writeScript Tag
browser busy indicators
*Only other document.write scripts are downloaded in parallel (in the same script block). Load Scripts Without Blocking
XHR Eval XHR Injection Script in iframe Script DOM Element Script Defer same domains different domains Script DOM Element Script Defer preserve order no order XHR Eval XHR Injection Script in iframe Script DOM Element (IE) Script DOM Element (FF) Script Defer (IE) Managed XHR Eval Managed XHR Injection no order preserve order Script DOM Element show busy no busy Script DOM Element (FF) Script Defer (IE) Managed XHR Injection Managed XHR Eval Script DOM Element (FF) Script Defer (IE) Managed XHR Eval Managed XHR Injection no busy show busy XHR Injection XHR Eval Script DOM Element (IE) Managed XHR Injection Managed XHR Eval Script DOM Element and the winner is...
bad: stylesheet followed by inline script stylesheets load in parallel with other resources... ...unless followed by an inline script put inline JS above stylesheets or below other resources use Link, not @import
MSN Wikipedia eBay MySpace mispositioned inline scripts
Both combine scripts combine stylesheets add an Expires header gzip responses put stylesheets at the top put scripts at the bottom avoid CSS expressions make JS and CSS external reduce DNS lookups minify JS and CSS avoid redirects remove duplicate scripts make Ajax cacheable reduce cookie size use cookie-free domains don't scale images YSlow use CSS sprites use a CDN configure ETags use GET for Ajax requests reduce # of DOM elements no 404s avoid image filters optimize favicon Page Speed defer loading JS remove unused CSS use efficient CSS selectors optimize images optimize order of CSS & JS shard domains leverage proxy caching
reduce HTTP use a CDN add Expires gzip minify configure ETags
Google + 0.4 sec searches  0.6%
Yahoo! + 0.4 sec traffic  5-9%
Bing +2 sec revenue  4.3%
Shopzilla -5 sec revenue 12% hw50%
Netflix outbound bandwidth         43%
fast performance = better user experience more traffic more revenue reduced costs
so... why don't more people do it?
it's too hard!
"if it wasn't hard everyone would do it" "the hard is what makes it great"
this year's theme: Fast by Default
Aptimize WAX concatenate scripts concatenate stylesheets sprites, data: URIs far future Expires minify JS and CSS automatically in real time
WAX on: http://sharepoint.microsoft.com # requests empty: 96  35 # requests primed: 50  9 scripts 7, stylesheets 12, images 25 pages faster: 46-64% empty, 15-53% primed

More Related Content

What's hot

Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web HackersMark Wubben
 
Bringing Typography to the Web with sIFR 3 at <head>
Bringing Typography to the Web with sIFR 3 at <head>Bringing Typography to the Web with sIFR 3 at <head>
Bringing Typography to the Web with sIFR 3 at <head>Mark Wubben
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimizationStevie T
 
Aligning Ember.js with Web Standards
Aligning Ember.js with Web StandardsAligning Ember.js with Web Standards
Aligning Ember.js with Web StandardsMatthew Beale
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web AppsTimothy Fisher
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMoshe Kaplan
 
How to make Ajax work for you
How to make Ajax work for youHow to make Ajax work for you
How to make Ajax work for youSimon Willison
 
The internet for SEOs by Roxana Stingu
The internet for SEOs by Roxana StinguThe internet for SEOs by Roxana Stingu
The internet for SEOs by Roxana StinguRoxana Stingu
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web PerformanceEric ShangKuan
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformWSO2
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basicsgeku
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tipSteve Yu
 
Gherkin for test automation in agile
Gherkin for test automation in agileGherkin for test automation in agile
Gherkin for test automation in agileViresh Doshi
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introductiondynamis
 
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 itOtto Kekäläinen
 
PHP Presentation
PHP PresentationPHP Presentation
PHP PresentationAnkush Jain
 
Web performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.ukWeb performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.ukgareth53
 

What's hot (20)

Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web Hackers
 
Google Ajax APIs
Google Ajax APIsGoogle Ajax APIs
Google Ajax APIs
 
Bringing Typography to the Web with sIFR 3 at <head>
Bringing Typography to the Web with sIFR 3 at <head>Bringing Typography to the Web with sIFR 3 at <head>
Bringing Typography to the Web with sIFR 3 at <head>
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimization
 
Aligning Ember.js with Web Standards
Aligning Ember.js with Web StandardsAligning Ember.js with Web Standards
Aligning Ember.js with Web Standards
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
 
Front End Performance
Front End PerformanceFront End Performance
Front End Performance
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
PHP
PHPPHP
PHP
 
How to make Ajax work for you
How to make Ajax work for youHow to make Ajax work for you
How to make Ajax work for you
 
The internet for SEOs by Roxana Stingu
The internet for SEOs by Roxana StinguThe internet for SEOs by Roxana Stingu
The internet for SEOs by Roxana Stingu
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basics
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tip
 
Gherkin for test automation in agile
Gherkin for test automation in agileGherkin for test automation in agile
Gherkin for test automation in agile
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
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
 
PHP Presentation
PHP PresentationPHP Presentation
PHP Presentation
 
Web performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.ukWeb performance - Analysing Heart.co.uk
Web performance - Analysing Heart.co.uk
 

Similar to Fronteers 20091105 (1)

Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesSteve Souders
 
Web20expo 20080425
Web20expo 20080425Web20expo 20080425
Web20expo 20080425Media Gorod
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Steve Souders
 
Even Faster Web Sites at The Ajax Experience
Even Faster Web Sites at The Ajax ExperienceEven Faster Web Sites at The Ajax Experience
Even Faster Web Sites at The Ajax ExperienceSteve Souders
 
Google在Web前端方面的经验
Google在Web前端方面的经验Google在Web前端方面的经验
Google在Web前端方面的经验yiditushe
 
SXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSteve Souders
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008Volkan Unsal
 
Front End Website Optimization
Front End Website OptimizationFront End Website Optimization
Front End Website OptimizationGerard Sychay
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Presentation of JSConf.eu
Presentation of JSConf.euPresentation of JSConf.eu
Presentation of JSConf.euFredrik Wendt
 
A Holistic View of Website Performance
A Holistic View of Website PerformanceA Holistic View of Website Performance
A Holistic View of Website PerformanceRene Churchill
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patternsStoyan Stefanov
 
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...GoogleTecTalks
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End PerformanceChris Love
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web SitesSteve Souders
 
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers PresentationSeo Indonesia
 

Similar to Fronteers 20091105 (1) (20)

Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web Sites
 
Fast by Default
Fast by DefaultFast by Default
Fast by Default
 
Web20expo 20080425
Web20expo 20080425Web20expo 20080425
Web20expo 20080425
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09
 
Sanjeev ghai 12
Sanjeev ghai 12Sanjeev ghai 12
Sanjeev ghai 12
 
Even Faster Web Sites at The Ajax Experience
Even Faster Web Sites at The Ajax ExperienceEven Faster Web Sites at The Ajax Experience
Even Faster Web Sites at The Ajax Experience
 
Google在Web前端方面的经验
Google在Web前端方面的经验Google在Web前端方面的经验
Google在Web前端方面的经验
 
SXSW: Even Faster Web Sites
SXSW: Even Faster Web SitesSXSW: Even Faster Web Sites
SXSW: Even Faster Web Sites
 
Sxsw 20090314
Sxsw 20090314Sxsw 20090314
Sxsw 20090314
 
Oscon 20080724
Oscon 20080724Oscon 20080724
Oscon 20080724
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008
 
Front End Website Optimization
Front End Website OptimizationFront End Website Optimization
Front End Website Optimization
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Presentation of JSConf.eu
Presentation of JSConf.euPresentation of JSConf.eu
Presentation of JSConf.eu
 
A Holistic View of Website Performance
A Holistic View of Website PerformanceA Holistic View of Website Performance
A Holistic View of Website Performance
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patterns
 
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...
A World Beyond Ajax Accessing Googles Ap Is From Flash And Non Java Script En...
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web Sites
 
Getting More Traffic From Search Advanced Seo For Developers Presentation
Getting More Traffic From Search  Advanced Seo For Developers PresentationGetting More Traffic From Search  Advanced Seo For Developers Presentation
Getting More Traffic From Search Advanced Seo For Developers Presentation
 

Recently uploaded

Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 

Recently uploaded (20)

Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 

Fronteers 20091105 (1)

  • 1. fast by default http://stevesouders.com/docs/fronteers-20091105.pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
  • 2.
  • 3.
  • 4. introduction 4 Progressive Rendering 7 Progressive Enhancement 5 Make fewer HTTP requests 9 Use a CDN 7 Add an Expires header 8 Gzip components 9 Put stylesheets at the top 6 Put scripts at the bottom 7 Avoid CSS expressions 4 Make JS and CSS external 5 Reduce DNS lookups 9 Minify JS 4 Avoid redirects 9 Remove duplicate scripts 2 Configure ETags 8 Make AJAX cacheable 6 Splitting the initial payload 3 Loading scripts without blocking 9 Coupling asynchronous scripts 7 Positioning inline scripts 6 Sharding dominant domains 5 Flushing the document early 8 Using iframes sparingly 4 Simplifying CSS Selectors 9 Understanding Ajax performance 5 Creating responsive web apps 7 Writing efficient JavaScript 9 Scaling with Comet 8 Going beyond gzipping 7 Optimizing images 9 New Async Techniques 3 YSlow 2 Page Speed 2 Performance & the Bottom Line 5 Fast By Default 6 Stanford CS193H 4 Don&apos;t use @import 4 F5 & XHR 5 SpriteMe 3 Browserscope 4 HTTP Archive Format 2 @font-face Performance 2 SpeedGeeks 2 Velocity OLC 2 Firebug Net Panel 4 Takeaways 1 Thank You! 0 introduction 4 Progressive Rendering 7 Progressive Enhancement 5 Make fewer HTTP requests 9 Use a CDN 7 Add an Expires header 8 Gzip components 9 Put stylesheets at the top 6 Put scripts at the bottom 7 Avoid CSS expressions 4 Make JS and CSS external 5 Reduce DNS lookups 9 Minify JS 4 Avoid redirects 9 Remove duplicate scripts 2 Configure ETags 8 Make AJAX cacheable 6 Splitting the initial payload 3 Loading scripts without blocking 9 Coupling asynchronous scripts 7 Positioning inline scripts 6 Sharding dominant domains 5 Flushing the document early 8 Using iframes sparingly 4 introduction 4 Progressive Rendering 7 Progressive Enhancement 5 Make fewer HTTP requests 9 Use a CDN 7 Add an Expires header 8 Gzip components 9 Put stylesheets at the top 6 Put scripts at the bottom 7 Avoid CSS expressions 4 Make JS and CSS external 5 Reduce DNS lookups 9 Minify JS 4 Avoid redirects 9 Remove duplicate scripts 2 Configure ETags 8 Make AJAX cacheable 6 Splitting the initial payload 3 Loading scripts without blocking 9 Coupling asynchronous scripts 7 Positioning inline scripts 6 Sharding dominant domains 5 Flushing the document early 8 Using iframes sparingly 4 Simplifying CSS Selectors 9 Understanding Ajax performance 5 Creating responsive web apps 7 Writing efficient JavaScript 9 Scaling with Comet 8 Going beyond gzipping 7 Optimizing images 9 New Async Techniques 3 YSlow 2 Page Speed 2 Performance & the Bottom Line 5 Fast By Default 6 Stanford CS193H 4 Don&apos;t use @import 4 F5 & XHR 5 SpriteMe 3 Browserscope 4 HTTP Archive Format 2 @font-face Performance 2 SpeedGeeks 2 Velocity OLC 2 Firebug Net Panel 4 Takeaways 1 Thank You! 0 Simplifying CSS Selectors 9 Understanding Ajax performance 5 Creating responsive web apps 7 Writing efficient JavaScript 9 Scaling with Comet 8 Going beyond gzipping 7 Optimizing images 9 New Async Techniques 3 YSlow 2 Page Speed 2 Performance & the Bottom Line 5 Fast By Default 6 Stanford CS193H 4 Don&apos;t use @import 4 F5 & XHR 5 SpriteMe 3 Browserscope 4 HTTP Archive Format 2 @font-face Performance 2 SpeedGeeks 2 Velocity OLC 2 Firebug Net Panel 4 Takeaways 1 Thank You! 0 256 163 79 60
  • 5. GMail Mobile: http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html SproutCore: http://blog.sproutcore.com/post/225219087/faster-loading-through-eval Google, Bing biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/8523 Yahoo! biz metrics: http://www.slideshare.net/stoyan/yslow-20-presentation Shopzilla biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/7709 Netflix outbound traffic: http://en.oreilly.com/velocity2008/public/schedule/detail/3632 Google, Bing charts: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business Aptimize WAX: http://blogs.msdn.com/sharepoint/archive/2009/09/28/how-we-did-it-speeding-up-sharepoint-microsoft-com.aspx Strangeloop Networks: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business SproutCore: http://blog.sproutcore.com/post/196959232/how-sproutcore-makes-your-app-run-faster HTTP Archive Format: http://www.stevesouders.com/blog/2009/10/19/http-archive-specification-firebug-and-httpwatch/ @font-face: http://www.stevesouders.com/blog/2009/10/13/font-face-and-performance/
  • 6.
  • 7. 17% 83% iGoogle, primed cache the importance of frontend performance 9% 91% iGoogle, empty cache
  • 8. Make fewer HTTP requests Use a CDN Add an Expires header Gzip components Put stylesheets at the top Put scripts at the bottom Avoid CSS expressions Make JS and CSS external Reduce DNS lookups Minify JS Avoid redirects Remove duplicate scripts Configure ETags Make AJAX cacheable 14 Rules
  • 9. Even Faster Web Sites Splitting the initial payload Loading scripts without blocking Coupling asynchronous scripts Positioning inline scripts Sharding dominant domains Flushing the document early Using iframes sparingly Simplifying CSS Selectors Understanding Ajax performance..........Doug Crockford Creating responsive web apps............Ben Galbraith, Dion Almaer Writing efficient JavaScript.............Nicholas Zakas Scaling with Comet.....................Dylan Schiemann Going beyond gzipping...............Tony Gentilcore Optimizing images...................Stoyan Stefanov, Nicole Sullivan
  • 10. What makes sites feel slow ?
  • 13. AOL
  • 15. ESPN
  • 17. IKEA
  • 18. CNN
  • 21. WebPagetest.org VA, UK, NZ IE7, IE8 Dial, DSL, FIOS empty, empty & primed quad core Pat Meenan (AOL)
  • 22. News
  • 25. Progressive Enhancement deliver HTML defer JS avoid DOM decorate later
  • 26. Progressive Enhancement  Progressive Rendering
  • 27. Yahoo! Wikipedia eBay AOL MySpace YouTube Facebook Why focus on JavaScript?
  • 28. scripts block &lt;script src=&quot;A.js&quot;&gt; blocks parallel downloads and rendering 9 secs: IE 6-7, FF 3.0, Chr 1, Op 9-10, Saf 3 7 secs: IE 8, FF 3.5, Chr3, Saf 4
  • 29. 26% avg 252K avg initial payload and execution
  • 30. splitting the initial payload split your JavaScript between what&apos;s needed to render the page and everything else defer &quot;everything else&quot; split manually (Page Speed), automatically (Microsoft Doloto) load scripts without blocking – how?
  • 31. MSN Scripts and other resources downloaded in parallel! How? Secret sauce?! var p= g.getElementsByTagName(&quot;HEAD&quot;)[0]; var c=g.createElement(&quot;script&quot;); c.type=&quot;text/javascript&quot;; c.onreadystatechange=n; c.onerror=c.onload=k; c.src=e; p.appendChild(c) MSN.com: parallel scripts
  • 32. Loading Scripts Without Blocking XHR Eval XHR Injection Script in Iframe Script DOM Element Script Defer document.write Script Tag
  • 33. XHR Eval varxhrObj = getXHRObject(); xhrObj.onreadystatechange = function() { if ( xhrObj.readyState != 4 ) return; eval(xhrObj.responseText); }; xhrObj.open(&apos;GET&apos;, &apos;A.js&apos;, true); xhrObj.send(&apos;&apos;); script & page must be same domain massage script?
  • 34. XHR Injection varxhrObj = getXHRObject(); xhrObj.onreadystatechange = function() { if ( xhrObj.readyState != 4 ) return; var se=document.createElement(&apos;script&apos;); document.getElementsByTagName(&apos;head&apos;) [0].appendChild(se); se.text = xhrObj.responseText; }; xhrObj.open(&apos;GET&apos;, &apos;A.js&apos;, true); xhrObj.send(&apos;&apos;); script must have same domain as main page
  • 35. Script in Iframe &lt;iframe src=&apos;A.html&apos; width=0 height=0 frameborder=0 id=frame1&gt;&lt;/iframe&gt; iframe must have same domain as main page must refactor script: // access iframe from main page window.frames[0].createNewDiv(); // access main page from iframe parent.document.createElement(&apos;div&apos;);
  • 36. Script DOM Element var se = document.createElement(&apos;script&apos;); se.src = &apos;http://anydomain.com/A.js&apos;; document.getElementsByTagName(&apos;head&apos;) [0].appendChild(se); script & page domains can differ no need to massage JavaScript may not preserve execution order
  • 37. GMail Mobile &lt;script type=&quot;text/javascript&quot;&gt; /* var ... */ &lt;/script&gt; get script DOM element&apos;s text remove comments eval() when invoked inline or iframe awesome for prefetching JS that might (not) be needed
  • 38. SproutCore var module1 = &quot;...&quot;; var module2 = &quot;...&quot;; eval() modules as needed 2nd fastest downloading 2nd fastest loading symbols best alternative
  • 39. &lt;script defer src=&apos;A.js&apos;&gt;&lt;/script&gt; supported in IE and FF 3.1+ script and main page domains can differ no need to refactor JavaScript Script Defer
  • 40. document.write(&quot;&lt;script type=&apos;text/javascript&apos; src=&apos;A.js&apos;&gt; &lt;script&gt;&quot;); parallelization only works in IE parallel downloads for scripts, nothing else all document.writes must be in same script block document.writeScript Tag
  • 42. *Only other document.write scripts are downloaded in parallel (in the same script block). Load Scripts Without Blocking
  • 43. XHR Eval XHR Injection Script in iframe Script DOM Element Script Defer same domains different domains Script DOM Element Script Defer preserve order no order XHR Eval XHR Injection Script in iframe Script DOM Element (IE) Script DOM Element (FF) Script Defer (IE) Managed XHR Eval Managed XHR Injection no order preserve order Script DOM Element show busy no busy Script DOM Element (FF) Script Defer (IE) Managed XHR Injection Managed XHR Eval Script DOM Element (FF) Script Defer (IE) Managed XHR Eval Managed XHR Injection no busy show busy XHR Injection XHR Eval Script DOM Element (IE) Managed XHR Injection Managed XHR Eval Script DOM Element and the winner is...
  • 44. bad: stylesheet followed by inline script stylesheets load in parallel with other resources... ...unless followed by an inline script put inline JS above stylesheets or below other resources use Link, not @import
  • 45. MSN Wikipedia eBay MySpace mispositioned inline scripts
  • 46.
  • 47.
  • 48. Both combine scripts combine stylesheets add an Expires header gzip responses put stylesheets at the top put scripts at the bottom avoid CSS expressions make JS and CSS external reduce DNS lookups minify JS and CSS avoid redirects remove duplicate scripts make Ajax cacheable reduce cookie size use cookie-free domains don&apos;t scale images YSlow use CSS sprites use a CDN configure ETags use GET for Ajax requests reduce # of DOM elements no 404s avoid image filters optimize favicon Page Speed defer loading JS remove unused CSS use efficient CSS selectors optimize images optimize order of CSS & JS shard domains leverage proxy caching
  • 49. reduce HTTP use a CDN add Expires gzip minify configure ETags
  • 50.
  • 51.
  • 52. Google + 0.4 sec searches  0.6%
  • 53. Yahoo! + 0.4 sec traffic  5-9%
  • 54. Bing +2 sec revenue  4.3%
  • 55. Shopzilla -5 sec revenue 12% hw50%
  • 57.
  • 58. fast performance = better user experience more traffic more revenue reduced costs
  • 59. so... why don&apos;t more people do it?
  • 61.
  • 62. &quot;if it wasn&apos;t hard everyone would do it&quot; &quot;the hard is what makes it great&quot;
  • 63. this year&apos;s theme: Fast by Default
  • 64. Aptimize WAX concatenate scripts concatenate stylesheets sprites, data: URIs far future Expires minify JS and CSS automatically in real time
  • 65. WAX on: http://sharepoint.microsoft.com # requests empty: 96  35 # requests primed: 50  9 scripts 7, stylesheets 12, images 25 pages faster: 46-64% empty, 15-53% primed
  • 66. Strangeloop Networks &quot;typical ecommerce site&quot; pages per visit: 11  16 time on site: 24  30 mins conversions: 16% order value: 5.5%
  • 67. Rails far future Expires concatenate scripts domain sharding configure ETags in pipeline: async scripts, spriting, minification, flushing
  • 68. SproutCore concatenate scripts concatenate stylesheets versioning (future Expires) stylesheets at the top scripts at the bottom minify JS & CSS remove dupe scripts
  • 69. WPO
  • 70. news
  • 71. finds BG images groups into sprites generates sprite recomputes BG pos injects into page http://spriteme.org/
  • 74. @font-face blocks rendering in IE if below SCRIPT tag declare above all SCRIPTs
  • 75. Velocity OnLine Conference Dec 8, 9am-12:30pm PT HoomanBeheshti (StrangeLoop) Charles Jolley (SproutCore) Matt Cutts (Google) Artur Bergman (Wikia) Damien Katz (CouchDB)
  • 76. focus on the frontend run YSlow and Page Speed! progressive enhancement  progressive rendering takeaways
  • 77. SPEED is the next competitive advantage use it ...before someone else does
  • 78. Steve Souders souders@google.com http://stevesouders.com/docs/fronteers-20091105.pptx
  • 79. GMail Mobile: http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html SproutCore: http://blog.sproutcore.com/post/225219087/faster-loading-through-eval Google, Bing biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/8523 Yahoo! biz metrics: http://www.slideshare.net/stoyan/yslow-20-presentation Shopzilla biz metrics: http://en.oreilly.com/velocity2009/public/schedule/detail/7709 Netflix outbound traffic: http://en.oreilly.com/velocity2008/public/schedule/detail/3632 Google, Bing charts: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business Aptimize WAX: http://blogs.msdn.com/sharepoint/archive/2009/09/28/how-we-did-it-speeding-up-sharepoint-microsoft-com.aspx Strangeloop Networks: http://www.watchingwebsites.com/archives/proof-that-speeding-up-websites-improves-online-business SproutCore: http://blog.sproutcore.com/post/196959232/how-sproutcore-makes-your-app-run-faster HTTP Archive Format: http://www.stevesouders.com/blog/2009/10/19/http-archive-specification-firebug-and-httpwatch/ @font-face: http://www.stevesouders.com/blog/2009/10/13/font-face-and-performance/

Editor's Notes

  1. YtseJam Photography, "Going nowhere fast", http://www.flickr.com/photos/thatguyfromcchs08/2300190277/
  2. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  3. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  4. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  5. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  6. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  7. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  8. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  9. 3000 kbps up, 600kbps downduo CPU Thinkpad X61Windows XPIE 7
  10. http://stevesouders.com/p3/index.php?sites=google-search,yahoo-search,bing,ask,aol-search&ival=500http://www.webpagetest.org/video/compare.php?tests=091019_2JHW,091019_2JHY,091019_2JHX,091019_2JJ0,091019_2JHZ&ival=500google & yahoo: http://www.webpagetest.org/video/view.php?id=091105_e6a07e497145cb5fc721e6f437e75a3cbing & yahoo: http://www.webpagetest.org/video/view.php?id=091105_c5cca3a0bd59ca54fb1ba6f591228acf
  11. http://stevesouders.com/p3/index.php?sites=yahoo-news,cnn,cnet,google-news,nytimes,msnbc,foxnews&ival=1000
  12. http://stevesouders.com/p3/index.php?sites=ebay,amazon,netflix,target,bestbuy,ikea&ival=2000
  13. http://stevesouders.com/p3/index.php?sites=ebay,amazon,netflix,target,bestbuy,ikea&ival=2000
  14. Data Source: Steve Soudersaol 76%ebay 45%facebook 41%google 42%live search 9%msn 37%myspace 37%yahoo 45%youtube 60%wikipedia 26%average 42%
  15. Data source: Steve Souders
  16. Permission to use photo given by Brian.H - http://flickr.com/photos/robinofloxley/750220669/
  17. Of the ten top sites, MSN.com (Script DOM Element), Live Search (Script in Iframe), and Yahoo (Script DOM Element) use advanced script loading techniques.