SlideShare una empresa de Scribd logo
1 de 99
Descargar para leer sin conexión
High Performance Web Sites14 rules for faster-loading pages,[object Object],Parham Fazel,[object Object],Hooman Noroozinia,[object Object],Tosan Tech Talk,[object Object],2011/06,[object Object]
Introduction,[object Object]
Exceptional Performance,[object Object],started in 2004,[object Object],quantify and improve the performance of all Yahoo! products worldwide,[object Object],center of expertise,[object Object],build tools, analyze data,[object Object],gather, research, and evangelize best practices,[object Object]
Scope,[object Object],performance breaks into two categories,[object Object],response time,[object Object],efficiency,[object Object],current focus is response time,[object Object],of web products,[object Object]
Rough Cuts: now,[object Object],Hardcopy: Summer 2007,[object Object],http://www.oreilly.com/catalog/9780596514211/,[object Object]
Steve Souders,[object Object],employer:Google,[object Object],Head Performance Engineer,[object Object],blog:http://stevesouders.com/blog/,[object Object],Steve works at Google on web performance and open source initiatives. He previously served as Chief Performance Yahoo!. ,[object Object]
Steve is the author of High Performance Web Sites and Even Faster Web Sites. ,[object Object],	He is the creator of YSlow, one of the top 25 of 2 billion Firefox add-ons. ,[object Object],	He's created many other performance tools and services including the HTTP Archive, Cuzillion, Jdrop, ControlJS, and Browserscope. He serves as co-chair of Velocity, the web performance and operations conference from O'Reilly, and is co-founder of the Firebug Working Group. ,[object Object],	He taught CS193H: High Performance Web Sites at Stanford University.,[object Object]
The Importance of Front-End Performance,[object Object]
percentage of time spent on the front-end,[object Object],Back-end vs. Front-end,[object Object]
The Performance Golden Rule,[object Object],80-90% of the end-user response time is spent on the front-end. Start there.,[object Object],[object Object]
Simpler
Proven to work,[object Object]
Performance Research,[object Object]
perceived response time,[object Object],slowcrawlboringsnailstagnantunexceptionalyawnunresponsiveimpatientdelaymoderateblahsubduedragapatheticprolongslackloadsluggishsleepylateunexcitingreducedlagcomplex heavyunmemorableobscurewhy wait,[object Object],performance speed enjoyable urgentinstantaccelerateperceptionsnapachievement betterimproveaction pleasantpacequickpromoteswiftcoolmaximumdriveprompt advance fast hurryrushsatisfyingfeelexceptionalbriskrapid exciting,[object Object],what is the end user’s experience?,[object Object]
User Perception,[object Object],Usability and perception are important for performance.,[object Object],The user’s perception is more relevant than actual unload-to-onload response time.,[object Object],Definition of "user onload" is undefined or varies from one web page to the next.,[object Object]
http://yuiblog.com/blog/2006/11/28/performance-research-part-1/,[object Object]
80/20 Performance Rule,[object Object],Vilfredo Pareto: ,[object Object],80% of consequences come from 20% of causes,[object Object],Focus on the 20% that affects 80% of the end-user response time.,[object Object],Start at the front-end.,[object Object]
2,[object Object],3,[object Object],1,[object Object],user re-requests www.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],user requests other web pages,[object Object],Empty vs. Full Cache,[object Object]
2,[object Object],3,[object Object],1,[object Object],user re-requests www.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],user requests other web pages,[object Object],Empty vs. Full Cache,[object Object],with an empty cache,[object Object]
2,[object Object],3,[object Object],1,[object Object],user re-requests www.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],user requests other web pages,[object Object],Empty vs. Full Cache,[object Object]
Empty vs. Full Cache,[object Object],2,[object Object],1,[object Object],user requests www.yahoo.com,[object Object],user requests other web pages,[object Object],3,[object Object],user re-requests www.yahoo.com,[object Object],Expires header,[object Object],with a full cache,[object Object]
Empty vs. Full Cache,[object Object],						   empty cache,[object Object],							2.4 seconds,[object Object],						   full cache,[object Object],							0.9 seconds,[object Object],83% fewer bytes,[object Object],90% fewer HTTP requests,[object Object]
How much does this benefit our users?,[object Object],It depends on how many users have components in cache.,[object Object],[object Object],	* “Empty cache” means the browser has to request the componentsinstead of pulling them from the browser disk cache.,[object Object],[object Object],[object Object]
}1 px,[object Object],Add a new image to your page,[object Object],<img src="image/blank.gif" height="1" width="1"/>,[object Object],with the following response headers:,[object Object],Expires: Thu, 15 Apr 2004 20:00:00 GMT,[object Object],Last-Modified: Wed, 28 Sep 2006 23:49:57 GMT,[object Object],Browser Cache Experiment,[object Object]
Browser Cache Experiment,[object Object],Requests from the browser will have one of these response status codes:,[object Object],200 – The browser does not have the image in its cache.,[object Object],304 – The browser has the image in its cache, but needs to verify the last modified date.,[object Object]
Browser Cache Experiment,[object Object],}1 px,[object Object]
Surprising Results,[object Object],users withempty cache,[object Object],page views withempty cache,[object Object],40-60% ,[object Object],~20% ,[object Object]
Experiment Takeaways,[object Object],Keep in mind the empty cache user experience. It might be more prevalent than you think!,[object Object],Use different techniques to optimize full versus empty cache experience.,[object Object]
http://yuiblog.com/blog/2007/03/01/performance-research-part-3,[object Object]
1,[object Object],user requests www.yahoo.com,[object Object],HTTP Quick Review,[object Object],HTTP response header sent by the web server:,[object Object],HTTP/1.1 200 OK,[object Object],Content-Type: text/html; charset=utf-8,[object Object],Set-Cookie: C=abcdefghijklmnopqrstuvwxyz; domain=.yahoo.com,[object Object]
1,[object Object],user requests www.yahoo.com,[object Object],HTTP Quick Review,[object Object],2,[object Object],user requests finance.yahoo.com,[object Object],HTTP request header sent by the browser:,[object Object],GET / HTTP/1.1,[object Object],Host: finance.yahoo.com,[object Object],User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; …,[object Object],Cookie: C=abcdefghijklmnopqrstuvwxyz;,[object Object]
3,[object Object],1,[object Object],user requests autos.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],HTTP Quick Review,[object Object],HTTP request header sent by the browser:,[object Object],GET / HTTP/1.1,[object Object],Host: autos.yahoo.com,[object Object],User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; …,[object Object],Cookie: C=abcdefghijklmnopqrstuvwxyz;,[object Object]
4,[object Object],1,[object Object],user requests mail.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],HTTP Quick Review,[object Object],HTTP request header sent by the browser:,[object Object],GET / HTTP/1.1,[object Object],Host: mail.yahoo.com,[object Object],User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; …,[object Object],Cookie: C=abcdefghijklmnopqrstuvwxyz;,[object Object]
5,[object Object],1,[object Object],user requests tech.yahoo.com,[object Object],user requests www.yahoo.com,[object Object],HTTP Quick Review,[object Object],HTTP request header sent by the browser:,[object Object],GET / HTTP/1.1,[object Object],Host: tech.yahoo.com,[object Object],User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; …,[object Object],Cookie: C=abcdefghijklmnopqrstuvwxyz;,[object Object]
Impact of Cookies on Response Time,[object Object],dialup users,[object Object],80 ms delay,[object Object],keep sizes low,[object Object]
.yahoo.com cookie sizes,[object Object]
Analysis of Cookie Sizes across the Web,[object Object]
Experiment Takeaways,[object Object],eliminate unnecessary cookies,[object Object],keep cookie sizes low,[object Object],set cookies at appropriate domain level,[object Object],set Expires date appropriately,[object Object],earlier date or none removes cookie sooner	,[object Object]
http://yuiblog.com/blog/2007/04/11/performance-research-part-4/,[object Object]
Parallel Downloads,[object Object],GIF,[object Object],GIF,[object Object],GIF,[object Object],GIF,[object Object],GIF,[object Object],GIF,[object Object],Two components,[object Object],in parallel,[object Object],per hostname,[object Object],HTTP/1.1,[object Object]
Parallel Downloads,[object Object],Two in parallel,[object Object],Four in parallel,[object Object],Eight in parallel,[object Object]
Maximizing Parallel Downloads,[object Object],response time (seconds),[object Object],aliases,[object Object]
Maximizing Parallel Downloads,[object Object],response time (seconds),[object Object],aliases,[object Object]
Maximizing Parallel Downloads,[object Object],response time (seconds),[object Object],aliases,[object Object]
Maximizing Parallel Downloads,[object Object],response time (seconds),[object Object],rule of thumb: use at least two but no more than four aliases,[object Object]
Experiment Takeaways,[object Object],consider the effects of CPU thrashing,[object Object],DNS lookup times vary across ISPs and geographic locations,[object Object],domain names may not be cached,[object Object]
Summary,[object Object],What the 80/20 Rule Tells Us about Reducing HTTP Requests,[object Object],http://yuiblog.com/blog/2007/04/11/performance-research-part-4/,[object Object],Browser Cache Usage – Exposed!,[object Object],http://yuiblog.com/blog/2007/01/04/performance-research-part-2/,[object Object],When the Cookie Crumbles,[object Object],http://yuiblog.com/blog/2007/01/04/performance-research-part-2/,[object Object],Maximizing Parallel Downloads in the Carpool Lane,[object Object],http://yuiblog.com/blog/2007/04/11/performance-research-part-4/,[object Object]
14 Rules,[object Object]
14 Rules,[object Object],Make fewer HTTP requests,[object Object],Use a CDN,[object Object],Add an Expires header,[object Object],Gzip components,[object Object],Put CSS at the top,[object Object],Move JS to the bottom,[object Object],Avoid CSS expressions,[object Object],Make JS and CSS external,[object Object],Reduce DNS lookups,[object Object],Minify JS,[object Object],Avoid redirects,[object Object],Remove duplicate scripts,[object Object],Turn off ETags,[object Object],Make AJAX cacheable and small,[object Object]
Rule 1: Make fewer HTTP requests,[object Object],image maps,[object Object],CSS sprites,[object Object],inline images,[object Object],combined scripts, combined stylesheets,[object Object]
Image maps,[object Object],server-side,[object Object],<a href="navbar.cgi"><img ismap src="imagemap.gif"></a>,[object Object],-> http://.../navbar.cgi?127,13,[object Object],client-side – preferred,[object Object],<img usemap="#map1" border=0 src="/images/imagemap.gif">,[object Object],<map name="map1">,[object Object],  <area shape="rect" coords="0,0,31,31" href="home.html" title="Home">,[object Object],   …,[object Object],</map>,[object Object],drawbacks:,[object Object],must be contiguous,[object Object],defining area coordinates – tedious, errors,[object Object],http://www.w3.org/TR/html401/struct/objects.html#h-13.6,[object Object]
CSS Sprites – Preferred,[object Object],<span style=",[object Object],  background-image: url('sprites.gif');,[object Object],  background-position: -260px -90px;">,[object Object],</span>,[object Object],size of combined image is less,[object Object],not supported in Opera 6,[object Object],http://alistapart.com/articles/sprites ,[object Object]
Inline Images,[object Object],data: URL scheme,[object Object],data:[<mediatype>][;base64],<data>,[object Object],<IMG ALT=”Red Star”,[object Object],SRC="data:image/gif;base64,R0lGODlhDAAMALMLAPN8ffBiYvWWlvrKy/FvcPewsO9VVfajo+w6O/zl5estLv/8/AAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAMAAwAAAQzcElZyryTEHyTUgknHd9xGV+qKsYirKkwDYiKDBiatt2H1KBLQRFIJAIKywRgmhwAIlEEADs=">,[object Object],not supported in IE,[object Object],avoid increasing size of HTML pages:,[object Object],put inline images in cached stylesheets,[object Object],http://tools.ietf.org/html/rfc2397,[object Object]
Combined Scripts, Combined Stylesheets,[object Object]
Combined Scripts,Combined Stylesheets,[object Object],combining six scripts into one eliminates five HTTP requests,[object Object],challenges: ,[object Object],develop as separate modules,[object Object],number of possible combinations vs. loading more than needed,[object Object],maximize browser cache,[object Object],one solution:,[object Object],dynamically combine and cache,[object Object]
Rule 2: Use a CDN,[object Object],distribute your static content before distributing your dynamic content,[object Object]
Rule 3: Add an Expires header ,[object Object],not just for images,[object Object]
Rule 4: Gzip components ,[object Object],you can affect users' download times,[object Object],90%+ of browsers support compression,[object Object]
Gzip compresses more,[object Object],Gzip supported in more browsers,[object Object],Gzip vs. Deflate,[object Object]
Gzip: not just for HTML,[object Object],gzip scripts, stylesheets, XML, JSON (not images, PDF),[object Object]
Gzip Configuration ,[object Object],Apache 2.x: mod_deflate,[object Object],AddOutputFilterByType DEFLATE text/html text/css application/x-javascript,[object Object],HTTP request,[object Object],Accept-Encoding: gzip, deflate,[object Object],HTTP response,[object Object],Content-Encoding: gzip,[object Object],Vary: Accept-Encoding,[object Object],needed for proxies ,[object Object]
Gzip Edge Cases ,[object Object],<1% of browsers have problems with gzip,[object Object],IE 5.5: ,[object Object],    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q313712,[object Object],IE 6.0:,[object Object],    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q31249,[object Object],Netscape 3.x, 4.x,[object Object],    http://www.schroepl.net/projekte/mod_gzip/browser.htm,[object Object],consider adding Cache-Control: Private,[object Object],remove ETags (Rule 13),[object Object],hard to diagnose; problem getting smaller,[object Object]
Rule 5: Put CSS at the top ,[object Object],stylesheets block rendering in IE,[object Object],http://stevesouders.com/examples/css-bottom.php,[object Object],solution: put stylesheets in HEAD (per spec),[object Object],avoids Flash of Unstyled Content,[object Object],use LINK (not @import),[object Object]
Slowest is Fastest ,[object Object]
Rule 6: Move scripts to the bottom ,[object Object],scripts block parallel downloads across all hostnames,[object Object],scripts block rendering of everything below them in the page,[object Object],IE and FF,[object Object],http://stevesouders.com/examples/js-middle.php,[object Object]
Rule 6: Move scripts to the bottom ,[object Object],script defer attribute is not a solution,[object Object],blocks rendering and downloads in FF,[object Object],slight blocking in IE,[object Object],solution: move them as low in the page as possible,[object Object]
Rule 7: Avoid CSS expressions ,[object Object],used to set CSS properties dynamically in IE,[object Object],width: expression( ,[object Object],  document.body.clientWidth < 600 ? ,[object Object],  “600px” : “auto” );,[object Object],problem: expressions execute many times,[object Object],mouse move, key press, resize, scroll, etc.,[object Object],http://stevesouders.com/examples/expression-counter.php,[object Object]
One-Time Expressions,[object Object],expression overwrites itself,[object Object],<style>,[object Object],P {,[object Object],    background-color: expression(altBgcolor(this));,[object Object],},[object Object],</style>,[object Object],<script>,[object Object],function altBgcolor(elem) {,[object Object],    elem.style.backgroundColor = (new Date()).getHours()%2 ? "#F08A00" : "#B8D4FF";,[object Object],},[object Object],</script>,[object Object]
Event Handlers,[object Object],tie behavior to (fewer) specific events,[object Object],window.onresize = setMinWidth;,[object Object],function setMinWidth() {,[object Object],varaElements =                  ,[object Object],document.getElementsByTagName("p");,[object Object],    for ( vari = 0; i < aElements.length; i++ ) {,[object Object],aElements[i].runtimeStyle.width = ( ,[object Object],document.body.clientWidth<600 ? ,[object Object],           "600px" : "auto" );,[object Object],    },[object Object],},[object Object]
Rule 8: Make JS and CSS external ,[object Object],inline: HTML document is bigger,[object Object],external: more HTTP requests, but cached,[object Object],variables,[object Object],page views per user (per session),[object Object],empty vs. full cache stats,[object Object],component re-use,[object Object],external is typically better,[object Object],home pages may be an exception,[object Object]
Post-Onload Download,[object Object],inline in front page,[object Object],download external files after onload,[object Object],window.onload = downloadComponents;,[object Object],function downloadComponents() {,[object Object],    var elem = document.createElement("script");,[object Object],    elem.src = "http://.../file1.js";,[object Object],    document.body.appendChild(elem);,[object Object],    ...,[object Object],},[object Object],speeds up secondary pages,[object Object]
Dynamic Inlining,[object Object],start with post-onload download,[object Object],set cookie after components downloaded,[object Object],server-side: ,[object Object],if cookie, use external,[object Object],else, do inline with post-onload download,[object Object],cookie expiration date is key,[object Object],speeds up all pages,[object Object]
Rule 9: Reduce DNS lookups ,[object Object],typically 20-120 ms,[object Object],block parallel downloads,[object Object],OS and browser both have DNS caches,[object Object]
TTL (Time To Live),[object Object],TTL – how long record can be cached,[object Object],browser settings override TTL,[object Object]
Browser DNS Cache,[object Object],IE,[object Object],DnsCacheTimeout: 30 minutes,[object Object],KeepAliveTimeout: 1 minute,[object Object],ServerInfoTimeout: 2 minutes,[object Object],Firefox,[object Object],network.dnsCacheExpiration: 1 minute,[object Object],network.dnsCacheEntries: 20,[object Object],network.http.keep-alive.timeout: 5 minutes,[object Object],Fasterfox: 1 hour, 512 entries, 30 seconds,[object Object]
Reducing DNS Lookups,[object Object],fewer hostnames – 2-4,[object Object],keep-alive,[object Object]
Rule 10: Minify JavaScript,[object Object],minify inline scripts, too,[object Object]
Minify vs. Obfuscate,[object Object],minify – it's safer,[object Object],http://crockford.com/javascript/jsmin,[object Object],http://dojotoolkit.org/docs/shrinksafe,[object Object]
Rule 11: Avoid redirects,[object Object],3xx status codes – mostly 301 and 302,[object Object],HTTP/1.1 301 Moved Permanently,[object Object],Location: http://stevesouders.com/newuri,[object Object],add Expires headers to cache redirects,[object Object],worst form of blocking,[object Object],http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,[object Object]
Redirects,[object Object]
Avoid Redirects,[object Object],missing trailing slash,[object Object],http://astrology.yahoo.com/astrology,[object Object],use Alias or DirectorySlash,[object Object],mod_rewrite,[object Object],CNAMEs,[object Object],log referer – track internal links,[object Object],outbound links – harder,[object Object],beacons – beware of race condition,[object Object],XHR – bail at readyState 2,[object Object]
Rule 12: Remove duplicate scripts,[object Object],hurts performance,[object Object],extra HTTP requests (IE only),[object Object],extra executions,[object Object],atypical?,[object Object],2 of 10 top sites contain duplicate scripts,[object Object],team size, # of scripts,[object Object]
Script Insertion Functions,[object Object],<?php,[object Object],function insertScript($jsfile) {,[object Object],    if ( alreadyInserted($jsfile) ) { return; },[object Object],    pushInserted($jsfile);,[object Object],    if ( hasDependencies($jsfile) ) {,[object Object],        $dependencies = getDependencies($jsfile);,[object Object],        for ( $i = 0; $i < count($dependencies); $i++ ) {,[object Object],            insertScript($dependencies[$i]);,[object Object],        },[object Object],    },[object Object],    echo '<script type="text/javascript" src="' . ,[object Object],         getVersion($jsfile) . '"></script>";,[object Object],},[object Object],?>,[object Object]
Rule 13: Turn off ETags,[object Object],unique identifier returned in response,[object Object],ETag: "c8897e-aee-4165acf0",[object Object],Last-Modified: Thu, 07 Oct 2004 20:54:08 GMT,[object Object],used in conditional GET requests,[object Object],If-None-Match: "c8897e-aee-4165acf0",[object Object],If-Modified-Since: Thu, 07 Oct 2004 20:54:08 GMT,[object Object],if ETag doesn't match, can't send 304,[object Object]
The Problem with ETags,[object Object],ETag for a single entity is always different across servers,[object Object],ETag format,[object Object],Apache: inode-size-timestamp,[object Object],IIS: Filetimestamp:ChangeNumber,[object Object],Sites with >1 server return too few 304s,[object Object],(n-1)/n,[object Object],Remove them,[object Object],Apache: FileETag none,[object Object],IIS: http://support.microsoft.com/kb/922703/,[object Object]
Rule 14: Make AJAX cacheable and small,[object Object],XHR, JSON, iframe, dynamic scripts can still be cached, minified, and gzipped,[object Object],a personalized response should still be cacheable by that person,[object Object]
AJAX Example: Yahoo! Mail Beta,[object Object],address book XML request,[object Object],-> GET /yab/[...]&r=0.5289571053069156 HTTP/1.1,[object Object],  Host: us.xxx.mail.yahoo.com,[object Object],← HTTP/1.1 200 OK,[object Object],  Date: Thu, 12 Apr 2007 19:39:09 GMT,[object Object],  Cache-Control: private,max-age=0,[object Object],  Last-Modified: Sat, 31 Mar 2007 01:17:17 GMT,[object Object],  Content-Type: text/xml; charset=utf-8,[object Object],  Content-Encoding: gzip,[object Object],address book changes infrequently,[object Object],cache it; add last-modified-time in URL,[object Object]
Live Analysis,[object Object]
IBM Page Detailer,[object Object],packet sniffer,[object Object],Windows only,[object Object],IE, FF, any .exe,[object Object],c:indowsd_WS2s.ini,[object Object],Executable=(NETSCAPE.EXE),(NETSCP6.EXE),(firefox.exe),[object Object],free trial, $300 license,[object Object],http://alphaworks.ibm.com/tech/pagedetailer ,[object Object]
http://alphaworks.ibm.com/tech/pagedetailer ,[object Object]
Fasterfox,[object Object],measures load time of pages,[object Object],alters config settings for faster loading,[object Object],Firefox extension,[object Object],free,[object Object],http://fasterfox.mozdev.org/,[object Object]
LiveHTTPHeaders,[object Object],view HTTP headers,[object Object],Firefox extension,[object Object],free,[object Object],http://livehttpheaders.mozdev.org/,[object Object]
Firebug,[object Object],web development evolved,[object Object],inspect and edit HTML,[object Object],tweak and visualize CSS,[object Object],debug and profile JavaScript,[object Object],monitor network activity (caveat),[object Object],Firefox extension,[object Object],free,[object Object],http://getfirebug.com/,[object Object]
http://getfirebug.com/,[object Object]
YSlow,[object Object],performance lint tool,[object Object],grades web pages for each rule,[object Object],Firefox extension,[object Object],Yahoo! internal tool,[object Object]
High Performance Websites
Conclusion,[object Object]
Takeaways,[object Object],focus on the front-end,[object Object],harvest the low-hanging fruit,[object Object],you do control user response times,[object Object],LOFNO – be an advocate for your users,[object Object]
Links,[object Object],book: http://www.oreilly.com/catalog/9780596514211/,[object Object],examples: http://stevesouders.com/examples/,[object Object],image maps: http://www.w3.org/TR/html401/struct/objects.html#h-13.6,[object Object],CSS sprites: http://alistapart.com/articles/sprites,[object Object],inline images: http://tools.ietf.org/html/rfc2397,[object Object],jsmin: http://crockford.com/javascript/jsmin,[object Object],dojo compressor: http://dojotoolkit.org/docs/shrinksafe,[object Object],HTTP status codes: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,[object Object],IBM Page Detailer: http://alphaworks.ibm.com/tech/pagedetailer,[object Object],Fasterfox: http://fasterfox.mozdev.org/,[object Object],LiveHTTPHeaders: http://livehttpheaders.mozdev.org/,[object Object],Firebug: http://getfirebug.com/,[object Object],YUIBlog: http://yuiblog.com/blog/2006/11/28/performance-research-part-1/,[object Object],http://yuiblog.com/blog/2007/01/04/performance-research-part-2/,[object Object],http://yuiblog.com/blog/2007/03/01/performance-research-part-3/,[object Object],http://yuiblog.com/blog/2007/04/11/performance-research-part-4/,[object Object],YDN: http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html,[object Object],http://developer.yahoo.net/blog/archives/2007/04/rule_1_make_few.html,[object Object]

Más contenido relacionado

La actualidad más candente

A Holistic View of Website Performance
A Holistic View of Website PerformanceA Holistic View of Website Performance
A Holistic View of Website PerformanceRene Churchill
 
How I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileHow I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileRoxana Stingu
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Nicholas Zakas
 
Web Client Performance
Web Client PerformanceWeb Client Performance
Web Client PerformanceHerea Adrian
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web SitesSteve Souders
 
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
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsAndy Davies
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012Bastian Grimm
 
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014Bastian Grimm
 
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - StockholmAndy Davies
 
Is your website's speed letting you down?
Is your website's speed letting you down?Is your website's speed letting you down?
Is your website's speed letting you down?Ray Krzeminski
 
Web Performance 101
Web Performance 101Web Performance 101
Web Performance 101Uri Lavi
 
How fast are we going now?
How fast are we going now?How fast are we going now?
How fast are we going now?Steve Souders
 
What does the browser pre-loader do?
What does the browser pre-loader do?What does the browser pre-loader do?
What does the browser pre-loader do?Andy Davies
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)Steve Souders
 
Prebrowsing - Velocity NY 2013
Prebrowsing - Velocity NY 2013Prebrowsing - Velocity NY 2013
Prebrowsing - Velocity NY 2013Steve Souders
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)Steve Souders
 

La actualidad más candente (20)

A Holistic View of Website Performance
A Holistic View of Website PerformanceA Holistic View of Website Performance
A Holistic View of Website Performance
 
How I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess fileHow I learned to stop worrying and love the .htaccess file
How I learned to stop worrying and love the .htaccess file
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
Web Client Performance
Web Client PerformanceWeb Client Performance
Web Client Performance
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web Sites
 
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
 
Keep the Web Fast
Keep the Web FastKeep the Web Fast
Keep the Web Fast
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the Basics
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
 
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
 
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
 
Is your website's speed letting you down?
Is your website's speed letting you down?Is your website's speed letting you down?
Is your website's speed letting you down?
 
Web Performance 101
Web Performance 101Web Performance 101
Web Performance 101
 
How fast are we going now?
How fast are we going now?How fast are we going now?
How fast are we going now?
 
Design+Performance
Design+PerformanceDesign+Performance
Design+Performance
 
What does the browser pre-loader do?
What does the browser pre-loader do?What does the browser pre-loader do?
What does the browser pre-loader do?
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)
 
Prebrowsing - Velocity NY 2013
Prebrowsing - Velocity NY 2013Prebrowsing - Velocity NY 2013
Prebrowsing - Velocity NY 2013
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)
 

Similar a High Performance Websites

腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站topgeek
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahooguestb1b95b
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax ApplicationsSiarhei Barysiuk
 
Heavy Web Optimization: Frontend
Heavy Web Optimization: FrontendHeavy Web Optimization: Frontend
Heavy Web Optimization: FrontendVõ Duy Tuấn
 
Fast and Easy Website Tuneups
Fast and Easy Website TuneupsFast and Easy Website Tuneups
Fast and Easy Website TuneupsJeff Wisniewski
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Adam Dunford
 
Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyChristian Thilmany
 
High performance website
High performance websiteHigh performance website
High performance websiteChamnap Chhorn
 
Frontend performance
Frontend performanceFrontend performance
Frontend performancesacred 8
 
10 things you can do to speed up your web app today stir trek edition
10 things you can do to speed up your web app today   stir trek edition10 things you can do to speed up your web app today   stir trek edition
10 things you can do to speed up your web app today stir trek editionChris Love
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...Otto Kekäläinen
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13Walter Ebert
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008Volkan Unsal
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Webnewcircle
 

Similar a High Performance Websites (20)

腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Csdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer YahooCsdn Drdobbs Tenni Theurer Yahoo
Csdn Drdobbs Tenni Theurer Yahoo
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax Applications
 
High-Speed HTML5
High-Speed HTML5High-Speed HTML5
High-Speed HTML5
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Heavy Web Optimization: Frontend
Heavy Web Optimization: FrontendHeavy Web Optimization: Frontend
Heavy Web Optimization: Frontend
 
Fast and Easy Website Tuneups
Fast and Easy Website TuneupsFast and Easy Website Tuneups
Fast and Easy Website Tuneups
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
 
Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian Thilmany
 
High performance website
High performance websiteHigh performance website
High performance website
 
Frontend performance
Frontend performanceFrontend performance
Frontend performance
 
10 things you can do to speed up your web app today stir trek edition
10 things you can do to speed up your web app today   stir trek edition10 things you can do to speed up your web app today   stir trek edition
10 things you can do to speed up your web app today stir trek edition
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13
 
Widget Summit 2008
Widget Summit 2008Widget Summit 2008
Widget Summit 2008
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Web
 

Último

Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphNetziValdelomar1
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfMohonDas
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxMYDA ANGELICA SUAN
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsEugene Lysak
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational PhilosophyShuvankar Madhu
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...Nguyen Thanh Tu Collection
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17Celine George
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxSaurabhParmar42
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxEduSkills OECD
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxraviapr7
 
General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and stepobaje godwin sunday
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxKatherine Villaluna
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfYu Kanazawa / Osaka University
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...raviapr7
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?TechSoup
 

Último (20)

Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a Paragraph
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdf
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptx
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George Wells
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational Philosophy
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptx
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptx
 
General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and step
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?
 

High Performance Websites

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 97.
  • 98.
  • 99.