<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HTML + CSS + JavaScript &#187; Performance</title>
	<atom:link href="http://htmlcssjavascript.com/category/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://htmlcssjavascript.com</link>
	<description>Not a Ninja, Pirate or Jedi.</description>
	<lastBuildDate>Wed, 11 Jan 2012 18:18:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Recent Reading (JS Natives Duke it Out, Regexp in jQuery, Performance, a New Image Format?)</title>
		<link>http://htmlcssjavascript.com/performance/recent-reading-js-natives-duke-it-out-regexp-in-jquery-performance-a-new-image-format/</link>
		<comments>http://htmlcssjavascript.com/performance/recent-reading-js-natives-duke-it-out-regexp-in-jquery-performance-a-new-image-format/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 19:07:30 +0000</pubDate>
		<dc:creator>Rob Larsen</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://htmlcssjavascript.com/?p=7733</guid>
		<description><![CDATA[Sorry, it&#8217;s been a while. I&#8217;ve been busy at work, I&#8217;ve been wringing every last bit out of summer on my bike, and I&#8217;ve spent a lot of my free time on my upcoming CSS presentation, so I haven&#8217;t been posting as much as I would like. Fall is here. Which means I should have [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry, it&#8217;s been a while. I&#8217;ve been busy at <a href="http://na.isobar.com/">work</a>, I&#8217;ve been wringing every last bit out of summer on my <a href="http://www.flickr.com/photos/rob_react/3801495899/">bike</a>, and I&#8217;ve spent a lot of my free time on my upcoming <a href="http://www.meetup.com/bostonphp/calendar/13924863/">CSS presentation</a>, so I haven&#8217;t been posting as much as I would like. Fall is here. Which means I should have more time for writing. That&#8217;s cool. </p>
<p>Anyway, to break the ice here are a few articles that have recently caught my attention.<br />
<span id="more-7733"></span></p>
<h2><a href="http://www.nczonline.net/blog/2010/09/28/why-is-getelementsbytagname-faster-that-queryselectorall/">Why is getElementsByTagName() faster that querySelectorAll()?</a></h2>
<p>I love articles like this. There&#8217;s so much attention paid to the surface we plaster over the core JavaScript language, I eat up anything that looks at the core. Shedding light on which natives are faster and why allows us to both speed up the abstractions and simply know which way to go when the situation calls for writing Plan Old JavaScript&trade;. </p>
<h2><a href="http://jmrware.com/articles/2010/jqueryregex/jQueryRegexes.html">jQuery Regular Expressions Review</a></h2>
<p>I&#8217;ve read a bunch of the jQuery source, so I was familiar with some of these already having parsed through them- just to drive myself mental and/or torture folks who fear regular expressions. The difference between being able to write safely matching regular expressions and writing efficient ones is pretty big and not many people can really do the latter. It&#8217;s nice to get a peek into the process. </p>
<h2><a href="http://www.webperformancetoday.com/2010/09/23/are-your-performance-goals-audacious-enough/">Are your performance goals audacious enough?</a></h2>
<p>I just love the sentiment. I also love the fact that Google is aiming for 100ms for a page load. It&#8217;s a crazy number if you break it down. The engineering and hardware gymnastics involved are considerable  and the margins are so slim things like the speed of light will come into play, but the mere fact they&#8217;re talking about it is enough for me to applaud. </p>
<p>The number, by the way, doesn&#8217;t come out of thin air. <a href="http://www.useit.com/papers/responsetime.html">100ms is the limit where an interaction with a computer stops feeling instantaneous</a>. Very little we do on the web actually feels instantaneous. Google wants everything they do to feel that way.  </p>
<h2><a href="http://fusejs.com/blog/2010/09/25/sandboxed-natives/">Sandboxed Natives</a></h2>
<p>Series of screencasts about the core idea behind FuseJS. <a href="http://dean.edwards.name/weblog/2006/11/hooray/">I clearly remember the Dean Edwards post that started it</a>. Funny how the reaction to a technical musing could grow to such an impressive project.  Interesting stuff.</p>
<h2><a href="http://www.stevesouders.com/blog/2010/09/30/render-first-js-second/">Render first. JS second.</a></h2>
<p>Interesting line of thought. It follows clearly from the work people have been doing with the deferred loading of scripts.  I&#8217;m looking at doing a lot of this kind of work on my current project. We&#8217;ll see how it all shakes out. </p>
<h2><a href="http://googlecode.blogspot.com/2010/09/webp-new-image-format-for-web.html ">WebP, a new image format for the Web</a></h2>
<p>While I love the idea, this one will be a long time coming, considering the presumed ongoing (eternal?) lack of support in Internet Explorer. </p>
<h2><a href="http://promotejs.com/">Promote JS</a></h2>
<p>A nice little project designed to get better links in front of people searching on Javascript topics.<br />
<a href='https://developer.mozilla.org/en/JavaScript/Guide' title='Learning JavaScript'><img src='http://static.jsconf.us/promotejsh.gif' height='150' width='180' alt='Learning JavaScript'/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://htmlcssjavascript.com/performance/recent-reading-js-natives-duke-it-out-regexp-in-jquery-performance-a-new-image-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant. Ant? Really?</title>
		<link>http://htmlcssjavascript.com/performance/ant-ant-really/</link>
		<comments>http://htmlcssjavascript.com/performance/ant-ant-really/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 01:03:21 +0000</pubDate>
		<dc:creator>Rob Larsen</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://htmlcssjavascript.com/?p=7728</guid>
		<description><![CDATA[Quick, if you were to guess a technology I&#8217;d be making commits on an open source project using, would Apache Ant be at the top of the list? I didn&#8217;t think so. But yet, here I am committing an Ant Build script to Paul&#8217;s excellent HTML5 Boilerplate project. It makes sense since I&#8217;ve done work [...]]]></description>
			<content:encoded><![CDATA[<p>Quick, if you were to guess a technology I&#8217;d be making commits on an open source project using, would Apache Ant be at the top of the list? I didn&#8217;t think so. But yet, <a href="http://github.com/paulirish/html5-boilerplate/blob/build/build/build.xml">here I am committing an Ant Build script </a>to Paul&#8217;s excellent <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> project.  It makes sense since I&#8217;ve done work on concatenation, minification and other performance enhancements using Ant, but it&#8217;s still a weird technology to be contributing to such a cool project with&#8230;</p>
<p><span id="more-7728"></span><br />
It&#8217;s actually be a lot of fun as I&#8217;ve dived deeper into Ant than I would ever have had to normally. I feel like I&#8217;m pretty handy with it now and watching my initial work <a href="http://github.com/Garowetz/html5-boilerplate/commit/ff3d10eaff956">get improved upon by other folks</a> has been fun all by itself. </p>
<p>I&#8217;m working on a write up of what I did and how to use it. I&#8217;ll share it here soon. </p>
]]></content:encoded>
			<wfw:commentRss>http://htmlcssjavascript.com/performance/ant-ant-really/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Required Reading: Yahoo Research on Mobile Cache Size</title>
		<link>http://htmlcssjavascript.com/performance/required-reading-yahoo-research-on-mobile-cache-size/</link>
		<comments>http://htmlcssjavascript.com/performance/required-reading-yahoo-research-on-mobile-cache-size/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 19:33:09 +0000</pubDate>
		<dc:creator>Rob Larsen</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[webos]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://htmlcssjavascript.com/?p=957</guid>
		<description><![CDATA[With more and more people embracing the idea of producing HTML5 mobile web apps, research like this is becoming vital. There are a lot of gotchas in this article, especially if you&#8217;ve been ignoring this space. You should read the whole article, but I just want to point out a pair of findings before I [...]]]></description>
			<content:encoded><![CDATA[<p>With more and more people embracing the idea of producing HTML5 mobile web apps, research like this is becoming vital. There are a lot of gotchas in this article, especially if you&#8217;ve been ignoring this space. </p>
<p>You should read the whole article, but I just want to point out a pair of findings before I send you on your way. One has <a href="http://www.yuiblog.com/blog/2008/02/06/iphone-cacheability/">been a known issue for a while</a> (it&#8217;s a ySlow  rule, after all,) but it&#8217;s still worth pointing out. The other&#8230; wow&#8230; my emphasis. </p>
<blockquote><p> Results varied wildly across the three most recent versions of iOS. <strong>Astonishingly, Mobile Safari on iOS 3.1.3 did not cache components of any size</strong>, despite having an apparently unlimited page cache size. This is troubling since it means iOS 3.1.3 users are likely getting a suboptimal browsing experience, especially if they aren’t using wifi. The unlimited page cache size does little good here, since it only comes into play for back/forward navigations. This behavior is a significant change from what others observed in previous iOS releases and I can’t imagine any good reason for it, so I suspect this may be a bug.</p>
<p>Mobile Safari on iOS 3.2 (which is only available on the iPad) does not exhibit this bug. Its 25.6KB component limit and ~281.6KB total cache limit are better than nothing, but they still seem paltry compared to the other devices tested. Uniquely among iOS devices, the iPad appears to limit the size of pages in the page cache to 25.6KB, the same as its component size limit. </p></blockquote>
<p>Read the rest of the article:</p>
<p><a href="http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/">Mobile Browser Cache Limits: Android, iOS, and webOS </a></p>
]]></content:encoded>
			<wfw:commentRss>http://htmlcssjavascript.com/performance/required-reading-yahoo-research-on-mobile-cache-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Didn&#8217;t Make it to Velocity, So Hours of Web Video Will Have to Do</title>
		<link>http://htmlcssjavascript.com/performance/i-didnt-make-it-to-velocity-so-hours-of-web-video-will-have-to-do/</link>
		<comments>http://htmlcssjavascript.com/performance/i-didnt-make-it-to-velocity-so-hours-of-web-video-will-have-to-do/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 19:32:03 +0000</pubDate>
		<dc:creator>Rob Larsen</dc:creator>
				<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://htmlcssjavascript.com/?p=952</guid>
		<description><![CDATA[I&#8217;m going to be picking off presentations whenever the opportunity presents itself. Want to play along at home? Blip.tv to the rescue: Next year, I&#8217;m going.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to be picking off presentations whenever the opportunity presents itself. Want to play along at home? Blip.tv to the rescue:</p>
<p><embed src="http://blip.tv/play/AYHpmkEC" type="application/x-shockwave-flash" width="480" height="300" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p>Next year, I&#8217;m going. </p>
]]></content:encoded>
			<wfw:commentRss>http://htmlcssjavascript.com/performance/i-didnt-make-it-to-velocity-so-hours-of-web-video-will-have-to-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Tip: When Linking to JavaScript on the Google Ajax Library CDN, Use a Specific Version Number</title>
		<link>http://htmlcssjavascript.com/performance/performance-tip-when-linking-to-javascript-on-the-google-ajax-library-cdn-use-a-specific-version-number/</link>
		<comments>http://htmlcssjavascript.com/performance/performance-tip-when-linking-to-javascript-on-the-google-ajax-library-cdn-use-a-specific-version-number/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 15:04:48 +0000</pubDate>
		<dc:creator>Rob Larsen</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://htmlcssjavascript.com/?p=944</guid>
		<description><![CDATA[I&#8217;ve seen this a few times over the past few months: &#60;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"&#62;&#60;/script&#62; What that basically says to Google is &#8220;give me the latest 1.* branch version of jQuery and make sure it&#8217;s minified.&#8221; Minified is good. Using the Google CDN is good. One thing that&#8217;s not so good is the fact that the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen this a few times over the past few months:</p>
<div class="code-sample wide">
<pre><code>
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"&gt;&lt;/script&gt;
</code></pre>
</div>
<p>What that basically says to Google is &#8220;give me the latest 1.* branch version of jQuery and make sure it&#8217;s minified.&#8221;<br />
<span id="more-944"></span><br />
Minified is good. Using the Google CDN is good. One thing that&#8217;s not so good is the fact that the above file is set with the following headers:</p>
<div class="code-sample">
<pre><code>
Date: Wed, 23 Jun 2010 18:26:27 GMT
<strong>Expires: Thu, 17 Jun 2010 14:26:58 GMT
</strong>Age: 2045
Server: GFE/2.0
</code></pre>
</div>
<p>Notice anything about the expires headers? Yeah, it&#8217;s actually set in the past. That&#8217;s uncacheable. That makes sense as the purpose of that link is to get the freshest version so you don&#8217;t want the browser to hold onto an old version. Thing is, when you&#8217;re building a site you want the browser to hold onto a file like that, since it&#8217;s the site equivalent of plumbing. </p>
<p>So, instead of using the generic &#8220;latest&#8221; link format, pin it down to a specific version number</p>
<div class="code-sample wide">
<pre><code>
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;&lt;/script&gt;
</code></pre>
</div>
<p>Here are those headers:</p>
<div class="code-sample">
<pre><code>
Content-Type	text/javascript; charset=UTF-8
Last-Modified	Mon, 15 Feb 2010 23:30:12 GMT
Date	Wed, 23 Jun 2010 17:26:41 GMT<strong>
Expires	Thu, 23 Jun 2011 17:26:41 GMT</strong>
</code></pre>
</div>
<p>That files expires 1 year from access. That&#8217;s what you want.</p>
<hr />
All of this is ignoring the very real possibility that published code could break as the underlying APIs change. It&#8217;s rare over the short term, but if a site live for more than a couple of years the odds are going good something will break because of an update that deprecates or changes some functionality. </p>
]]></content:encoded>
			<wfw:commentRss>http://htmlcssjavascript.com/performance/performance-tip-when-linking-to-javascript-on-the-google-ajax-library-cdn-use-a-specific-version-number/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

