<?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>techno.blog(&#34;Dion&#34;) &#187; techmeme</title>
	<atom:link href="http://almaer.com/blog/tag/techmeme/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:42:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Frustrating User Experiences: Techmeme Meta Refresh</title>
		<link>http://almaer.com/blog/frustrating-user-experiences-techmeme-meta-refresh</link>
		<comments>http://almaer.com/blog/frustrating-user-experiences-techmeme-meta-refresh#comments</comments>
		<pubDate>Fri, 29 Aug 2008 16:18:13 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[refresh]]></category>
		<category><![CDATA[techmeme]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/frustrating-user-experiences-techmeme-meta-refresh</guid>
		<description><![CDATA[
If you have a site or application where content updates regularly, it can be nice to update the content for the user. Techmeme falls under that category, and they have at the top of their page:

&#60;META HTTP-EQUIV=&#34;Refresh&#34; CONTENT=&#34;1800&#34;&#62;

The problem is that every now and then I come back to the browser and I see:

The refresh [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://almaer.com/blog/uploads/refreshinggrapes.jpg' alt='Refreshing Grapes' border='0'/></p>
<p>If you have a site or application where content updates regularly, it can be nice to update the content for the user. Techmeme falls under that category, and they have at the top of their page:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;META HTTP-EQUIV=&quot;Refresh&quot; CONTENT=&quot;1800&quot;&gt;</pre></div></div>

<p>The problem is that every now and then I come back to the browser and I see:</p>
<p><img src='http://almaer.com/blog/uploads/techmeme.png' alt='TechMeme' border='0'/></p>
<p>The refresh seems to be happening when network connectivity isn&#8217;t there and thus you get hit and the page dies. This isn&#8217;t a huge pain, you can manually refresh, but for some reason it bugs me a little.</p>
<p>What can you do? An ugly, error prone technique would be to test a connection before doing a refresh:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> pingRefresh<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> location <span style="color: #339933;">=</span> window.<span style="color: #660066;">location</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> xhr <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  xhr.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'HEAD'</span><span style="color: #339933;">,</span> location<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  xhr.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</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: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">status</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">status</span> <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">200</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">status</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">300</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        window.<span style="color: #660066;">location</span>.<span style="color: #660066;">reload</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>       
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  xhr.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
setTimeout<span style="color: #009900;">&#40;</span>pingRefresh<span style="color: #339933;">,</span> <span style="color: #CC0000;">60000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Or, it may make sense to be able to update part of the page (the main div or what have you) instead of asking the entire page to refresh. FriendFeed seems to do this and has:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> gFeedSpecs <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> gFeedAutoRefresh <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
gFeedSpecs<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'feed1'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;start&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;num&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">30</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;type&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;hash&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;f003fa699d7e64b96f2b901922d13ed8&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
gFeedAutoRefresh.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'feed1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<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: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>gFeedAutoRefresh<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> autoRefresher.<span style="color: #660066;">start</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">120000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> maybeRestoreHtml<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><b>Other Frustrating User Experiences</b></p>
<ul>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-tough-captchas">Tough Captchas</a></li>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-iphone-mailapp">iPhone Mail.app inbox switching</a></li>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-wordpress-categories">Wordpress Categories</a></li>
<li><a href="http://softwareas.com/the-official-olympics-medal-tally-is-broken-lets-fix-it">Michael Mahemoff: Olympics Medal Count</a></li>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-boulder-parking-tickets">Boulder Parking Tickets</a></li>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-wordpress-media-upload">Wordpress Media Upload</a></li>
<li><a href="http://almaer.com/blog/frustrating-user-experiences-red-carpet-club">Red Carpet Club</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/frustrating-user-experiences-techmeme-meta-refresh/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
