<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Improving browser performance in Review Board</title>
	<atom:link href="http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/</link>
	<description>Virtualization, Open Source, and Life</description>
	<lastBuildDate>Mon, 16 Nov 2009 19:41:35 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: ChipX86</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42390</link>
		<dc:creator>ChipX86</dc:creator>
		<pubDate>Fri, 30 Jan 2009 11:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42390</guid>
		<description>@vinz: YSlow! is an awesome tool. It&#039;s been invaluable to this.

@James: Both good points. We&#039;ll probably be taking advantage of ETags for certain pages. The pages where the modified times have been important were our big performance bottlenecks, but now that those are taken care of, I&#039;m going to look into integrating ETags in some places.</description>
		<content:encoded><![CDATA[<p>@vinz: YSlow! is an awesome tool. It&#8217;s been invaluable to this.</p>
<p>@James: Both good points. We&#8217;ll probably be taking advantage of ETags for certain pages. The pages where the modified times have been important were our big performance bottlenecks, but now that those are taken care of, I&#8217;m going to look into integrating ETags in some places.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vinz</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42389</link>
		<dc:creator>vinz</dc:creator>
		<pubDate>Fri, 30 Jan 2009 11:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42389</guid>
		<description>...and to check that altogether, install http://developer.yahoo.com/yslow/</description>
		<content:encoded><![CDATA[<p>&#8230;and to check that altogether, install <a href="http://developer.yahoo.com/yslow/">http://developer.yahoo.com/yslow/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Henstridge</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42388</link>
		<dc:creator>James Henstridge</dc:creator>
		<pubDate>Wed, 28 Jan 2009 02:42:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42388</guid>
		<description>If you&#039;ve got people deploying the app on secure sites, it is also worth sending &quot;Cache-Control: public&quot; for things you don&#039;t mind being stored to disk such as media.  Without this, browsers will only cache those resources in memory rather than on disk.

With respect to ETags, if you need to generate the entire page in order to calculate your ETag, you won&#039;t see a huge benefit from their use (it would still cut down the bandwidth though).  They help a lot when you have a way of calculating the ETag without generating the entire contents (e.g ViewVC uses revision numbers as ETags for a number of pages, which are cheap to check).  That said, if the only identifier you have is a monotonically increasing date field, then using last-modified is probably okay.  Just make sure there is no way for the date to go backwards ...</description>
		<content:encoded><![CDATA[<p>If you&#8217;ve got people deploying the app on secure sites, it is also worth sending &#8220;Cache-Control: public&#8221; for things you don&#8217;t mind being stored to disk such as media.  Without this, browsers will only cache those resources in memory rather than on disk.</p>
<p>With respect to ETags, if you need to generate the entire page in order to calculate your ETag, you won&#8217;t see a huge benefit from their use (it would still cut down the bandwidth though).  They help a lot when you have a way of calculating the ETag without generating the entire contents (e.g ViewVC uses revision numbers as ETags for a number of pages, which are cheap to check).  That said, if the only identifier you have is a monotonically increasing date field, then using last-modified is probably okay.  Just make sure there is no way for the date to go backwards &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ChipX86</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42387</link>
		<dc:creator>ChipX86</dc:creator>
		<pubDate>Tue, 27 Jan 2009 22:56:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42387</guid>
		<description>@Tony: No. You&#039;ll notice when we do, and there will be an announcement.

@anon: ETAGS doesn&#039;t magically solve caching issues and doesn&#039;t give us the ability to save time server-side. ETAGS is certainly a good thing, but not a replacement for modified times (nor is modified times a replacement for ETAGS).

ETAGS are often generated based on the content of a document, which means performing all the queries needed and doing the templating needed to build that document. What happens is that when an ETAG is generated, it&#039;s sent to the server the next time, and the server still has to do all the work to generate the content. The ETAG saves the transfer time, but none of the server time. In fact, it actually adds to it a little since we need to generate something based on the document (which in our case can be expense for diffs).

By making clever use of the If-Modified-Since header, we can shortcut all that. Given that ability, ETAGS aren&#039;t that helpful to us, so long as we&#039;re handling it in all places. We&#039;re not yet, but we&#039;re also not losing out on much since with the aggressive caching, the page transfer time is pretty small for the remaining pages.</description>
		<content:encoded><![CDATA[<p>@Tony: No. You&#8217;ll notice when we do, and there will be an announcement.</p>
<p>@anon: ETAGS doesn&#8217;t magically solve caching issues and doesn&#8217;t give us the ability to save time server-side. ETAGS is certainly a good thing, but not a replacement for modified times (nor is modified times a replacement for ETAGS).</p>
<p>ETAGS are often generated based on the content of a document, which means performing all the queries needed and doing the templating needed to build that document. What happens is that when an ETAG is generated, it&#8217;s sent to the server the next time, and the server still has to do all the work to generate the content. The ETAG saves the transfer time, but none of the server time. In fact, it actually adds to it a little since we need to generate something based on the document (which in our case can be expense for diffs).</p>
<p>By making clever use of the If-Modified-Since header, we can shortcut all that. Given that ability, ETAGS aren&#8217;t that helpful to us, so long as we&#8217;re handling it in all places. We&#8217;re not yet, but we&#8217;re also not losing out on much since with the aggressive caching, the page transfer time is pretty small for the remaining pages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42386</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Tue, 27 Jan 2009 17:49:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42386</guid>
		<description>Have you pushed these changes to the VMware server yet?</description>
		<content:encoded><![CDATA[<p>Have you pushed these changes to the VMware server yet?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anon</title>
		<link>http://www.chipx86.com/blog/2009/01/27/improving-browser-performance-in-review-board/comment-page-1/#comment-42385</link>
		<dc:creator>anon</dc:creator>
		<pubDate>Tue, 27 Jan 2009 16:40:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.chipx86.com/blog/?p=297#comment-42385</guid>
		<description>Why doesn&#039;t ETAGS cut it? Compared to modifying the querystring, ETAGS seems to be pretty powerfull.</description>
		<content:encoded><![CDATA[<p>Why doesn&#8217;t ETAGS cut it? Compared to modifying the querystring, ETAGS seems to be pretty powerfull.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
