<?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/"
	>

<channel>
	<title>HttpWatch Blog</title>
	<atom:link href="http://blog.httpwatch.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.httpwatch.com</link>
	<description>News, articles and all things HttpWatch</description>
	<pubDate>Thu, 12 Aug 2010 15:10:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Follow Up: Asynchronous Google Analytics is Better but Not Faster Even with IE 6 and 7</title>
		<link>http://blog.httpwatch.com/2010/08/12/follow-up-asynchronous-google-analytics-is-better-but-not-faster-even-with-ie-6-and-7/</link>
		<comments>http://blog.httpwatch.com/2010/08/12/follow-up-asynchronous-google-analytics-is-better-but-not-faster-even-with-ie-6-and-7/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 15:10:58 +0000</pubDate>
		<dc:creator>Httpwatch Blog</dc:creator>
		
		<category><![CDATA[HttpWatch]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Google Analytics]]></category>

		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.httpwatch.com/?p=1048</guid>
		<description><![CDATA[In our last post Asynchronous Google Analytics is Better but Not Faster, we ran some tests using HttpWatch in Firefox 3.6 and IE 8 to see if the asynchronous version of the Google Analytics (GA) script was really faster as many have claimed.
We found the following:

Changing from the synchronous to asynchronous GA snippet make no [...]]]></description>
			<content:encoded><![CDATA[<p>In our last post <a href="http://blog.httpwatch.com/2010/07/29/asynchronous-google-analytics-is-better-but-not-faster/">Asynchronous Google Analytics is Better but Not Faster</a>, we ran some tests using HttpWatch in Firefox 3.6 and IE 8 to see if the asynchronous version of the Google Analytics (GA) script was really faster as many have claimed.</p>
<p>We found the following:</p>
<ol>
<li>Changing from the synchronous to asynchronous GA snippet make no significant difference in page load time over a typical broadband connection</li>
<li>When we tried simulating a slow download of the ga.js file, we did find that the asynchronous version of GA isolated the page from this potential performance problem - but only in IE.</li>
<li>When we simulated a slow download of the GA image beacon, we did not see a difference between the two versions of GA. In IE, the image always downloaded in the background without holding up the page load event. In Firefox, a slow GA beacon always held up the page load.</li>
<li>We found that the asynchronous version of GA completed the GA beacon request much sooner on slow pages allowing the analytics data to be collected even when the user left the page early</li>
</ol>
<p>Our overall conclusion was that due to point 4) the asynchronous version of GA was worth using because you were more likely to get analytics data from slow pages. The only potential performance benefit we found was in item 2) but we ignored that because:</p>
<ul>
<li>It only applied to IE</li>
<li>There&#8217;s a high chance the ga.js file will be cached (unlike the beacon file) before the user visits a page</li>
<li>In our experience the components of GA always download quickly, often in a 100 ms or less on a typical broadband connection</li>
</ul>
<p>One of the <a href="http://blog.httpwatch.com/2010/07/29/asynchronous-google-analytics-is-better-but-not-faster/#comment-19706">comments we received</a> was that we should really have tested with IE 6 and 7 as those browsers are more prone to script blocking issues.</p>
<p>So, here are the condensed results of running the same tests in IE 6 and 7:</p>
<h3>Do Pages Load Faster With Asynchronous Google Analytics in IE 6 and 7?</h3>
<p>As before there was no significant performance advantage. Here are the IE 6 time charts with an empty cache:</p>
<p><img class="alignnone size-full wp-image-1056" style="border: 0pt none;" title="IE 6 with Synchronous GA" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie6_sync_ga_emptyhwl.png" alt="IE 6 with Synchronous GA" width="551" height="344" /></p>
<p><img class="alignnone size-full wp-image-1055" style="border: 0pt none;" title="IE 6 with Asynchronous GA and Empty Cache" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie6_async_ga_emptyhwl.png" alt="IE 6 with Asynchronous GA and Empty Cache" width="551" height="338" /></p>
<p>And the IE 7 charts with a primed cache:</p>
<p><img class="alignnone size-full wp-image-1058" style="border: 0pt none;" title="IE 7 with Synchronous GA and Primed Cache" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie7_sync_ga_primed.png" alt="IE 7 with Synchronous GA and Primed Cache" width="551" height="337" /></p>
<p><img class="alignnone size-full wp-image-1057" style="border: 0pt none;" title="IE 7 with Asynchronous GA and Primed Cache" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie7_async_ga_primed.png" alt="IE 7 with Asynchronous GA and Primed Cache" width="544" height="338" /></p>
<h3>Would Google Performance Problems Have Less Impact With Asynchronous Google Analytics in IE 6 and IE 7?</h3>
<p><strong></strong>We found that IE 6 and 7 behaved the same as IE 8 when we simulated the slow download of the GA image beacon. It didn&#8217;t matter which version of the GA script we used. The image always downloaded in the background without affecting the page load time:</p>
<p><img class="alignnone size-full wp-image-1062" style="border: 0pt none;" title="IE6 Sync GA with Slow GA Beacon" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie6_sync_slow_ga_beacon.png" alt="IE6 Sync GA with Slow GA Beacon" width="544" height="338" /></p>
<p>When we tried slowing the download of the ga.js file, we found that IE 6 and IE 7 benefited from the asynchronous version of GA in the same way as IE 8:</p>
<p><img class="alignnone size-full wp-image-1063" style="border: 0pt none;" title="IE6 Async GA with Slow ga.js" src="http://blog.httpwatch.com/wp-content/uploads/2010/08/ie6_async_slow_ga.png" alt="IE6 Async GA with Slow ga.js" width="544" height="332" /></p>
<h3>Is Data More Likely to be Recorded by Asynchronous Google Analytics During Early Page Exits in IE 6 and IE 7?</h3>
<p>Again, we saw the same behavior as IE 8. Using the asynchronous version of GA increased the chance of collecting analytics data when a user left a page early.</p>
<h3>Conclusion</h3>
<p>We found no differences in our tests with IE 6 and IE 7 compared to IE 8. Asynchronous GA is worth using because it increases the chance of gathering data from slow pages, but you shouldn&#8217;t expect to see faster page load times unless you encounter a slow, uncached ga.js file in IE.</p>
<p>So why doesn&#8217;t asynchronous GA deliver significant performance gains as widely claimed? We believe it is down to the following factors:</p>
<ol>
<li>The synchronous version of the GA script is included at the bottom of the &lt;body&gt; tag minimizing it&#8217;s impact on the rest of the page</li>
<li>The files used by GA typically download so quickly that in most cases any improvement has minimal impact on the overall page load time</li>
<li>The asynchronous loading techniques don&#8217;t seem to work in Firefox for either component and only help with the ga.js file in IE</li>
</ol>
 <img src="http://blog.httpwatch.com/wp-content/plugins/feed-statistics.php?view=1&post_id=1048" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.httpwatch.com/2010/08/12/follow-up-asynchronous-google-analytics-is-better-but-not-faster-even-with-ie-6-and-7/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Asynchronous Google Analytics is Better but Not Faster</title>
		<link>http://blog.httpwatch.com/2010/07/29/asynchronous-google-analytics-is-better-but-not-faster/</link>
		<comments>http://blog.httpwatch.com/2010/07/29/asynchronous-google-analytics-is-better-but-not-faster/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 16:27:16 +0000</pubDate>
		<dc:creator>Httpwatch Blog</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[HTTP]]></category>

		<category><![CDATA[HttpWatch]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Google Analytics]]></category>

		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.httpwatch.com/?p=986</guid>
		<description><![CDATA[In December 2009, Google launched the asynchronous version of the Google Analytics script.  The update aimed to address potential script blocking problems that have been extensively researched and reported by Steve Souders at Google.
Steve&#8217;s blog post about the new asynchronous loading of Google Analytics identified three potential benefits:

Your pages should load faster
Availability or performance [...]]]></description>
			<content:encoded><![CDATA[<p>In December 2009, Google<a title="Google Analytics launches asynchrous tacking" href="http://googlecode.blogspot.com/2009/12/google-analytics-launches-asynchronous.html"> launched the asynchronous version</a> of the <a href="http://www.google.com/analytics/">Google Analytics</a> script.  The update aimed to address potential script blocking problems that have been <a href="http://developer.yahoo.net/blog/archives/2007/07/high_performanc_5.html">extensively</a><a href="http://developer.yahoo.net/blog/archives/2007/07/high_performanc_5.html"> researched</a> and <a href="cs193h.stevesouders.com/slides/cs193h-19-load-scripts-without-blocking.ppt">reported</a> by <a href="http://stevesouders.com/">Steve Souders</a> at Google.</p>
<p>Steve&#8217;s <a href="http://www.stevesouders.com/blog/2009/12/01/google-analytics-goes-async/">blog post about the new asynchronous loading</a> of Google Analytics identified three potential benefits:</p>
<ol>
<li>Your pages should load faster</li>
<li>Availability or performance problems at Google should have less impact on your site</li>
<li>Analytics data is more likely to be collected if a user leaves a page early</li>
</ol>
<p>Before applying the change to our web site we decide to compare the new and old versions of the Google Analytics scripts using HttpWatch 7.0 .</p>
<p>The following sections describe what has changed in the asynchronous Google Analytics script and the tests we performed to compare it to the traditional synchronous version.</p>
<h3>What has Changed?</h3>
<p>Google Analytics collects data using two components on a page:</p>
<ul>
<li>A javascript file script file that is loaded from http://www.google-analytics.com/ga.js</li>
<li>A 1&#215;1 pixel image beacon (http://www.google-analytics.com/__utm.gif) that passes data back to Google in query string parameters</li>
</ul>
<p>You enable Google Analytics on a web page by calling a page tracking function in ga.js. This function automatically gathers analytics data, such as operating system and browser versions, then generates the call to the image beacon.</p>
<p>The difference between the two ways of loading Google Analytics is in the way that the script file is loaded. In the <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=55488">traditional synchronous version</a>, two small script tags are added at the end the page&#8217;s &lt;body&gt; tag:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">...
  <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
    <span style="color: #003366; font-weight: bold;">var</span> gaJsHost <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;https:&quot;</span> <span style="color: #339933;">==</span> document.<span style="color: #660066;">location</span>.<span style="color: #660066;">protocol</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span>
    <span style="color: #3366CC;">&quot;https://ssl.&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;%3Cscript src='&quot;</span> <span style="color: #339933;">+</span> gaJsHost <span style="color: #339933;">+</span>
    <span style="color: #3366CC;">&quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&nbsp;
  <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
    <span style="color: #003366; font-weight: bold;">var</span> pageTracker <span style="color: #339933;">=</span> _gat._getTracker<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;XX-XXXXXX-X&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Your GA id</span>
    pageTracker._trackPageview<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&lt;/body&gt;
...</pre></div></div>

<p>The first script tag ensures that the correct HTTP or HTTPS version of the qa.js file is loaded. The second script tag then calls into the javascript file triggering the beacon image download.</p>
<p>These two script tags are placed at the end of the body tag to ensure that they don&#8217;t hold up the download of any other resources on the page. The disadvantage of doing this is that the analytics call may not be triggered if the user exits the page before it has completely downloaded.</p>
<p>The <a href="http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html">asynchronous version</a> of the Google Analytics loading code uses a single script tag at the end of the page&#8217;s &lt;head&gt; :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">...
&nbsp;
  <span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
    <span style="color: #003366; font-weight: bold;">var</span> _gaq <span style="color: #339933;">=</span> _gaq <span style="color: #339933;">||</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    _gaq.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'_setAccount'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'XX-XXXXXX-X'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    _gaq.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'_trackPageview'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> ga <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      ga.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">;</span>
      ga.<span style="color: #660066;">async</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
      ga.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'https:'</span> <span style="color: #339933;">==</span> document.<span style="color: #660066;">location</span>.<span style="color: #660066;">protocol</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">'https://ssl'</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">'http://www'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">+</span> <span style="color: #3366CC;">'.google-analytics.com/ga.js'</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> s <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> s.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">insertBefore</span><span style="color: #009900;">&#40;</span>ga<span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>head<span style="color: #339933;">&gt;</span>
...</pre></div></div>

<p>It sets up the parameters required to make the call into ga.js but doesn&#8217;t invoke the function directly. A script element is added to the document allowing asynchronous download without blocking other elements of the page. The <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-async">HTML 5 async attribute</a> is also set on the script tag for browsers that support it.</p>
<p>Once the ga.js file is loaded and executed it looks for an array variable called _gaq and executes the function with the previously specified arguments.</p>
<h3>Do Pages Load Faster With Asynchronous Google Analytics?</h3>
<p>To try this out we created a version of our <a href="http://www.httpwatch.com/download/">Download page</a> using both versions of the Google Analytics loading code. We first tried the synchronous version with an empty cache in IE to simulate a new visitor to the page:</p>
<p><img class="alignnone size-full wp-image-1007" style="border: 0pt none;" title="Synchronous GA Test With Empty cache in IE" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_sync_ga_empty.png" alt="Synchronous GA Test With Empty cache in IE" width="567" height="346" /></p>
<p>And then with the asynchronous version:</p>
<p><img class="alignnone size-full wp-image-1008" style="border: 0pt none;" title="Asynchronous GA Test With Empty cache in IE" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_async_ga_empty.png" alt="Asynchronous GA Test With Empty cache in IE" width="568" height="338" /></p>
<p>The page load times were dominated by other components on the page. Using the asynchronous version of Google Analytics didn&#8217;t really make any difference.</p>
<p>We tried the same tests with a primed cache to see if there would be a greater impact when the page was loaded during a repeat visit. First the synchronous version:</p>
<p><img class="alignnone size-full wp-image-1010" style="border: 0pt none;" title="Synchronous GA Test With Primed cache in IE" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_sync_ga_primed.png" alt="Synchronous GA Test With Primed cache in IE" width="569" height="333" /></p>
<p>and then the asynchronous version:</p>
<p><img class="alignnone size-full wp-image-1011" style="border: 0pt none;" title="Asynchronous GA Test With Primed cache in IE" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_async_ga_primed.png" alt="Asynchronous GA Test With Primed cache in IE" width="568" height="335" /></p>
<p>Again there was practically no difference in the page load time of the page allowing for variability in our tests.</p>
<p>The reason for that is that calls to Google Analytics are incredibly fast (usually around a 100ms or less) and the download of the image beacon doesn&#8217;t <a href="http://blog.httpwatch.com/2008/03/31/blocked-time-and-ie-8/">block other components</a> because it uses a different hostname.</p>
<p>We tried Firefox 3.6 and got almost the same results.</p>
<p><em><strong>Conclusion: </strong>Google Analytics is so fast that you won&#8217;t see any significant improvement with the asynchronous loading version.</em></p>
<h3>Would Google Performance Problems Have Less Impact With Asynchronous Google Analytics?</h3>
<p>For this test we needed to simulate performance problems at Google. We did this by modifying the standard script snippets to call our own ASP.NET versions of the Google files that served the same content but added a 5 second delay.</p>
<p>For example, here&#8217;s the ASPX file we used to serve up a local copy of ga.js:</p>

<div class="wp_syntax"><div class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">@</span> Page Language<span style="color: #006600; font-weight: bold;">=</span><span style="color: #cc0000;">&quot;C#&quot;</span> Debug<span style="color: #006600; font-weight: bold;">=</span><span style="color: #cc0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">@</span> Import Namespace<span style="color: #006600; font-weight: bold;">=</span>System.<span style="color: #9900cc;">IO</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span>
  System.<span style="color: #9900cc;">Threading</span>.<span style="color: #9900cc;">Thread</span>.<span style="color: #9900cc;">Sleep</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #800000;">6000</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight: bold;">;</span>
  <span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #330066;">AddHeader</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;Content-Type&quot;</span>, <span style="color: #cc0000;">&quot;text/javascript&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight: bold;">;</span>
  <span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #9900cc;">WriteFile</span><span style="color: #006600; font-weight:bold;">&#40;</span> <span style="color: #cc0000;">&quot;.\\ga.js&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight: bold;">;</span>
  <span style="color: #990099; font-weight: bold;">Response</span>.<span style="color: #990099; font-weight: bold;">End</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #006600; font-weight: bold;">;</span>
<span style="color: #000000; font-weight: bold;">%&gt;</span></pre></div></div>

<p>We did something similar with the Google __utm.gif file so that we could add delays to either component.</p>
<p>Using our slow simulation of ga.js in IE 8 we found that the page&#8217;s onload event was delayed with the synchronous version of the Google Analytics:</p>
<p><img class="alignnone size-full wp-image-1019" style="border: 0pt none;" title="Slow ga.js in IE with Synchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_sync_ga_slow.png" alt="Slow ga.js in IE with Synchronous Google Analytics" width="554" height="317" /></p>
<p>This caused the IE 8 to display the spinning icon in the current tab:</p>
<p><img class="alignnone size-full wp-image-1020" style="border: 0pt none;" title="Spinning Tab Icon in IE 8" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_tab_wait.png" alt="Spinning Tab Icon in IE 8" width="358" height="43" /></p>
<p>and a &#8220;Waiting&#8230;&#8221; message in the status bar:</p>
<p><img class="alignnone size-full wp-image-1021" style="border: 0pt none;" title="Waiting message in IE 8 Status bar" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_status_wait.png" alt="Waiting message in IE 8 Status bar" width="497" height="38" /></p>
<p>indicating to the user that the page was not fully downloaded.</p>
<p>We then tried using the slow version of the __utm.gif image file. This didn&#8217;t cause a problem in IE 8 as the page loaded successfully but continued to download the image beacon in the background even with the synchronous version of Google Analytics:</p>
<p><img class="alignnone size-full wp-image-1023" style="border: 0pt none;" title="Slow __utm.gif with synchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_sync_ga_slow_beacon.png" alt="Slow __utm.gif with synchronous Google Analytics" width="568" height="332" /></p>
<p>Firefox 3.6 didn&#8217;t cope as well. Delaying the download of the beacon file with the synchronous loading code had the same effect as delaying the ga.js file - the page load was delayed, the spinning tab icon was displayed and the status line indicated that it was waiting for data.</p>
<p>We then tried the asynchronous version of the analytics loading code. Delaying either the ga.js or utm.gif file had no effect on the loading of the page in IE; effectively hiding the issue from the web site visitor:</p>
<p><img class="alignnone size-full wp-image-1025" title="Slow ga.js in IE with asynchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_async_ga_slow.png" alt="Slow ga.js in IE with asynchronous Google Analytics" width="571" height="336" /></p>
<p>Surprisingly, the asynchronous version of the analytics code made no difference to Firefox 3.6 when we simulated slow downloads of the Google components:</p>
<p><img class="alignnone size-full wp-image-1027" style="border: 0pt none;" title="Slow ga.js loading in Firefox with asynchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ff_async_ga_slow.png" alt="Slow ga.js loading in Firefox with asynchronous Google Analytics" width="551" height="313" /></p>
<p><em><strong>Conclusion:</strong> Using the asynchronous load made IE 8 more robust to performance problems in the loading of qa.js. Otherwise it made no difference. In reality, ga.js is often cached anyway making it the less likely of the two components to be subject to performance problems.</em></p>
<h3>Is Data More Likely to be Recorded by Asynchronous Google Analytics During Early Page Exits?</h3>
<p>To test this potential benefit we changed our test pages to include a slow loading script file at the top of the body tag. The idea was to emulate what might happen on your page if a third party component, such as an ad script, started to slow down.</p>
<p>The script tag we added called an ASPX file than delayed 6 seconds before returning an empty script block:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>body<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">'http://veryslowdownload/ad.aspx'</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>This stopped our page being displayed for six seconds.</p>
<p>Using the synchronous version of the loading code in IE 8 and Firefox 3.6, we found that the Google Analytics beacon image was not downloaded if the user gave up and went elsewhere:</p>
<p><img class="alignnone size-full wp-image-1030" style="border: 0pt none;" title="Early page exit in IE 8 with synchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ie_sync_slow_ad1.png" alt="Early page exit in IE 8 with synchronous Google Analytics" width="575" height="263" /></p>
<p>The asynchronous loading of Google Analytics solved this problem in both browsers. The image beacon was downloaded almost immediately even though the page was blocked by the slow script tag:</p>
<p><img class="alignnone size-full wp-image-1031" title="Early page exit in Firefox 3.6 with asynchronous Google Analytics" src="http://blog.httpwatch.com/wp-content/uploads/2010/07/ff_async_slow_ad.png" alt="Early page exit in Firefox 3.6 with asynchronous Google Analytics" width="553" height="265" /></p>
<p><em><strong>Conclusion: </strong>The asynchronous version of Google Analytics helps to ensure that analytics data is gathered in IE and Firefox when the user leaves a page early.</em></p>
<h3>Should I Use the Asynchronous Version of Google Analytics?</h3>
<p>Yes, but not for the reasons you might expect. It&#8217;s unlikely to make any difference to how quickly your pages load. </p>
<p>The main reason to use it is that you are more likely to get analytics data if a user leaves a page early.</p>
 <img src="http://blog.httpwatch.com/wp-content/plugins/feed-statistics.php?view=1&post_id=986" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.httpwatch.com/2010/07/29/asynchronous-google-analytics-is-better-but-not-faster/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HttpWatch Version 7.0 is Available For Download</title>
		<link>http://blog.httpwatch.com/2010/06/07/httpwatch-version-70-is-available-for-download/</link>
		<comments>http://blog.httpwatch.com/2010/06/07/httpwatch-version-70-is-available-for-download/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 08:00:50 +0000</pubDate>
		<dc:creator>Httpwatch Blog</dc:creator>
		
		<category><![CDATA[HttpWatch]]></category>

		<guid isPermaLink="false">http://blog.httpwatch.com/?p=948</guid>
		<description><![CDATA[
HttpWatch version 7.0 has been released and is now available for download.
Any customers eligible for a free upgrade to HttpWatch Professional can install the latest version using their existing license key. If you&#8217;re not sure whether your license will work with version 7.0 go to Help-&#62;Check For Updates in HttpWatch and it will show you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.httpwatch.com/wp-content/uploads/2008/09/httpwatch_logo_graphic.png"><img class="size-medium wp-image-163 alignright" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="httpwatch_logo_graphic" src="http://blog.httpwatch.com/wp-content/uploads/2008/09/httpwatch_logo_graphic.png" alt="HttpWatch 6.0" width="100" height="102" /></a></p>
<p>HttpWatch version 7.0 has been released and is now available for <a title="Download HttpWatch" href="http://www.httpwatch.com/download/">download</a>.</p>
<p>Any customers <a href="http://www.httpwatch.com/support/#upgrade">eligible</a> for a free upgrade to HttpWatch Professional can install the latest version using their existing license key. If you&#8217;re not sure whether your license will work with version 7.0 go to Help-&gt;Check For Updates in HttpWatch and it will show you any available <a href="http://www.httpwatch.com/buy/softwaremaintenance.htm">updates or upgrades</a>.</p>
<h2>What&#8217;s New?</h2>
<h3>Page Level Events</h3>
<p>Page level time charts now include lines to indicate when events were raised during the loading of a page:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-960" style="border: 0pt none;" title="Page Events in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_events.png" alt="Page Events in HttpWatch 7.0" width="622" height="433" /></p>
<h3>Improved Grouping of Requests during Page Load</h3>
<p>Requests occurring after the page onload event are now grouped with the requests recorded during the initial loading of the page:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-984" title="Page Grouping in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_pagegrouping1.png" alt="Page Grouping in HttpWatch 7.0" width="621" height="215" /></p>
<h3>HttpWatch Detects and Highlights Potential Problems</h3>
<p>HttpWatch now examines each request and issues warnings where problems relating to performance, security or functionality are detected. Requests that have warnings are highlighted with a new Warning column marker:</p>
<p><img class="alignnone size-full wp-image-968" style="border: 0pt none;" title="HttpWatch 7.0 Detects Potential Problems" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_warnings.png" alt="HttpWatch 7.0 Detects Potential Problems" width="622" height="214" /></p>
<p>and a new request level Warnings tab shows the details of each potential problem:</p>
<p><img class="alignnone size-full wp-image-954" style="border: 0pt none;" title="Warnings tab in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_warnings_tab.png" alt="Warnings tab in HttpWatch 7.0" width="620" height="196" /></p>
<p>There&#8217;s also a new Warning tab in the Summary window that summarizes the occurrence of each type of warning in a page or set of selected requests:</p>
<p><img class="alignnone size-full wp-image-969" style="border: 0pt none;" title="Warnings Summary Tab in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_warnings_summary_tab.png" alt="Warnings Summary Tab in HttpWatch 7.0" width="620" height="212" /></p>
<h3>Customizable Grid Controls</h3>
<p>Right clicking on a grid&#8217;s column headers opens a customization menu:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-961" style="border: 0pt none;" title="Grid Customization in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_grid_customize.png" alt="Grid Customization in HttpWatch 7.0" width="624" height="225" /></p>
<p style="MARGIN-TOP: 12px">For example, you may want to increase the font size if you are using HttpWatch in a demonstration:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-962" style="border: 0pt none;" title="Change grid font size in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_grid_font.png" alt="Change grid font size in HttpWatch 7.0" width="623" height="193" /></p>
<h3>New Data Columns in the Request Grid</h3>
<p style="MARGIN-TOP: 12px">There&#8217;s now more than thirty columns to choose from in the main request grid covering almost every data item that is available in HttpWatch:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-956" title="Select Columns in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_columns.png" alt="Select Columns in HttpWatch 7.0" width="593" height="461" /></p>
<h3>Customizable CSV Export</h3>
<p style="MARGIN-TOP: 12px">The CSV output now can now be customized to include the data fields that you need:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-958" style="border: 0pt none;" title="Select Fields for CSV Export in HttpWatch 7.0" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_csv_fields.png" alt="" width="388" height="332" /></p>
<h3>Data Tips Help You Understand The Recorded Data</h3>
<p style="MARGIN-TOP: 12px">Data tips are now displayed when you hold the mouse pointer over an item such as an HTTP status code:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-966" style="border: 0pt none;" title="Result Data Tip" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_result_data_tip.png" alt="Result Data Tip" width="622" height="193" /></p>
<p style="MARGIN-TOP: 12px">Or a header value saving you the trouble of looking up what the value means:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-959" style="border: 0pt none;" title="Data Tip for Header" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_data_tip_header.png" alt="Data Tip for Header" width="620" height="292" /></p>
<h3>New Icon Based Type Column</h3>
<p>The new icon based type column saves space and provides an instant visual marker for different types of content. The data tip shows the underlying mime type:</p>
<p><img class="alignnone size-full wp-image-967" title="Icon based Type Column" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_type_column.png" alt="Icon based Type Column" width="623" height="220" /></p>
<h3>Coloring of Result Column Values</h3>
<p>The result column now uses red to indicate errors and gray for (Cache):</p>
<p><img class="alignnone size-full wp-image-965" style="border: 0pt none;" title="Coloring of Result column" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_result_color.png" alt="Coloring of Result column" width="579" height="239" /></p>
<h3>More Information About Cookies</h3>
<p>The cookie tab now displays the HttpOnly and Secure flags for each cookie; including cookie values that were sent to the server. The source column shows whether the cookie value was returned from the server, set by Javascript or saved in the cookie store by a previous session:</p>
<p><img class="alignnone size-full wp-image-957" style="border: 0pt none;" title="More information about Cookies" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_cookies.png" alt="More information about Cookies" width="620" height="166" /></p>
<h3>Improved Support For HAR Files</h3>
<p>HTTP Archive (HAR files) can now be:</p>
<ul>
<li>Saved as HttpWatch log files (.hwl)</li>
<li>Open using the HttpWatch automation interface</li>
<li>Re-exported in CSV or XML formats</li>
</ul>
<h3>Improved Automation Interface</h3>
<p>The automation interface allows HttpWatch to be controlled from programs written in almost any programming language (e.g. C#, VB.Net, Ruby, Javascript). In version 7.0, this interface has been extended with new classes, properties and methods to support:</p>
<ul>
<li>Page level events</li>
<li>Warnings</li>
<li>Export of customized CSV output</li>
<li>HTTP Archive (HAR) files</li>
<li>Image dimensions</li>
</ul>
<p>The documentation is also improved with a new format and object relationship diagrams:</p>
<p><img class="alignnone size-full wp-image-955" style="border: 0pt none;" title="Improved API documentation" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_api_doc_diag.png" alt="Improved API documentation" width="531" height="496" /></p>
<h3>Uploaded File Type on POST Data tab</h3>
<p>The content type of uploaded files is now shown in a separate column in the POST Data tab:</p>
<p style="MARGIN-TOP: 12px"><img class="alignnone size-full wp-image-964" style="border: 0pt none;" title="New Type column on POST Data tab" src="http://blog.httpwatch.com/wp-content/uploads/2010/06/v7_post_type.png" alt="New Type column on POST Data tab" width="620" height="166" /></p>
<h3>Compatibility with Version 6.x</h3>
<p>The HttpWatch log file format (HWL) has changed in version 7.0 to include support for page level events and imported HAR files. Files can be saved in HttpWatch 5.x/6.x format in case you need to share files with someone running an older version of HttpWatch.</p>
<p>The automation interface maintains backwards source compatibility with interpreted script clients and binary compatibility with existing compiled clients (e.g. C#, C++, VB.Net) .</p>
 <img src="http://blog.httpwatch.com/wp-content/plugins/feed-statistics.php?view=1&post_id=948" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.httpwatch.com/2010/06/07/httpwatch-version-70-is-available-for-download/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HttpWatch 7.0: Spot the Differences!</title>
		<link>http://blog.httpwatch.com/2010/05/28/httpwatch-70-spot-the-differences/</link>
		<comments>http://blog.httpwatch.com/2010/05/28/httpwatch-70-spot-the-differences/#comments</comments>
		<pubDate>Fri, 28 May 2010 14:21:55 +0000</pubDate>
		<dc:creator>Httpwatch Blog</dc:creator>
		
		<category><![CDATA[HttpWatch]]></category>

		<guid isPermaLink="false">http://blog.httpwatch.com/?p=931</guid>
		<description><![CDATA[Rather than the usual product release statement, we thought we&#8217;d try something a little different.
Spot the New Features and Win a Single User license
Here&#8217;s a screenshot of HttpWatch 7.0 that will be released on Monday, June 7th 2010:

There&#8217;s at least four new features visible in this screen shot. Some of them are quite subtle, so [...]]]></description>
			<content:encoded><![CDATA[<p>Rather than the usual product release statement, we thought we&#8217;d try something a little different.</p>
<h3>Spot the New Features and Win a Single User license</h3>
<p>Here&#8217;s a screenshot of HttpWatch 7.0 that will be released on Monday, June 7th 2010:</p>
<p><img class="alignnone size-full wp-image-936" style="border: 0pt none;" title="Version 7.0 Screenshot" src="http://blog.httpwatch.com/wp-content/uploads/2010/05/v7_beta_difference1.png" alt="Version 7.0 Screenshot" width="621" height="360" /></p>
<p>There&#8217;s at least four new features visible in this screen shot. Some of them are quite subtle, so you may want to fire up HttpWatch 6.2 for comparison.</p>
<p>The first three people to correctly name four new features will win a free single user license for HttpWatch Professional.</p>
<p>UPDATE: Sorry the competition is now over. The winners were:</p>
<blockquote><p><a href="http://www.99css.com">宗永涛(Zong Yongtao)</a></p>
<p>Alex McCubbin</p>
<p>Greg Goddard</p></blockquote>
<h3><span style="text-decoration: line-through;">Rules</span></h3>
<ul>
<li><span style="text-decoration: line-through;">Post your entry as a comment to this blog post</span></li>
<li><span style="text-decoration: line-through;">Put your email address in the email field but not the comment text. That way we can contact you without everyone seeing your email address. (We won&#8217;t use your email address for any other purpose)</span></li>
<li><span style="text-decoration: line-through;">We won&#8217;t name or share any information about the winning entries unless you are happy for us to do so</span></li>
<li><span style="text-decoration: line-through;">Once we&#8217;ve got three correct entries we&#8217;ll edit this post to indicate that the competition is closed</span></li>
<li><span style="text-decoration: line-through;">We&#8217;ll then contact the winning commenters and send them a license key. It doesn&#8217;t have to be for you; it can be for a friend or colleague.</span></li>
<li><span style="text-decoration: line-through;">The competition isn&#8217;t open to beta testers or anyone associated with Simtec Limited</span></li>
<li><span style="text-decoration: line-through;">Our decision is final and any entries after the competition has closed will be ignored</span></li>
</ul>
 <img src="http://blog.httpwatch.com/wp-content/plugins/feed-statistics.php?view=1&post_id=931" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.httpwatch.com/2010/05/28/httpwatch-70-spot-the-differences/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
