<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Software As She's Developed &#187; Customisation</title>
	<atom:link href="http://softwareas.com/tag/customisation/feed" rel="self" type="application/rss+xml" />
	<link>http://softwareas.com</link>
	<description>Mahemoff's Podcast/Blog - Web, Programming, Usability from the Author of 'Ajax Design Patterns' (AjaxPatterns.org)</description>
	<lastBuildDate>Mon, 26 Jul 2010 16:52:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>Copyright &amp;#xA9; Software As She's Developed 2010 </copyright>
		<managingEditor>michael@mahemoff.com (Software As She's Developed)</managingEditor>
		<webMaster>michael@mahemoff.com (Software As She's Developed)</webMaster>
		<category>posts</category>
		<ttl>1440</ttl>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Mahemoff's Podcast/Blog - Web, Programming, Usability from the Author of 'Ajax Design Patterns' (AjaxPatterns.org)</itunes:summary>
		<itunes:author>Software As She's Developed</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Software As She's Developed</itunes:name>
			<itunes:email>michael@mahemoff.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://softwareas.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://softwareas.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Software As She's Developed</title>
			<link>http://softwareas.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Ajax as a Remedy for the Cacheability-Personalization Dilemma</title>
		<link>http://softwareas.com/ajax-as-a-remedy-for-the-cacheability-personalization-dilemma</link>
		<comments>http://softwareas.com/ajax-as-a-remedy-for-the-cacheability-personalization-dilemma#comments</comments>
		<pubDate>Thu, 13 Jul 2006 11:37:10 +0000</pubDate>
		<dc:creator>mahemoff</dc:creator>
				<category><![CDATA[SoftwareDev]]></category>
		<category><![CDATA[AjaxPatterns]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[Customisation]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Personalisation]]></category>
		<category><![CDATA[Personalization]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Session]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>

		<guid isPermaLink="false">http://www.softwareas.com/ajax-as-a-remedy-for-the-cacheability-personalization-dilemma</guid>
		<description><![CDATA[A pattern for your consideration, about using Ajax to help pages be RESTful.

Problem

How to personalize content and make pages cacheable and bookmarkable at the same time?

Forces


We want pages to have clean URLs that describe the main content being viewed. Doing so makes pages easily bookmarkable and send-to-friend-able, and also allows us to cache the page [...]]]></description>
			<content:encoded><![CDATA[<p>A pattern for your consideration, about using Ajax to help pages be RESTful.</p>

<h3>Problem</h3>

<p>How to personalize content and make pages cacheable and bookmarkable at the same time?</p>

<h3>Forces</h3>

<ul>
<li>We want pages to have clean URLs that describe the main content being viewed. Doing so makes pages easily bookmarkable and send-to-friend-able, and also allows us to cache the page anywhere along the way. For example, viewing info about Fight Club should be  <i>http://example.com/fightclub</i> and not <i>http://example.com/fightclub/user-mahemoff</i> or <i>http://example.com/fightclub/287490270-1931321-cijE12ZSz</i></li>.
<li>We want to personalize pages &#8211; say Hi to the user, show them personalized recommendations, etc.</li>
<li>If we personalize, but use the same URL for all users, we break REST and therefore won&#8217;t be able to cache any content. My http://example.com/fightclub is different to your http://example.com/fightclub because we each see our own recommendations inside the page. 
</li><li>But if we use diferent URLs for personalization, we can&#8217;t cache across users and pages aren&#8217;t sent-to-friend-able. If I look up and see http://example.com/fightclub/user-mahemoff, I&#8217;m probably not going to bother sending you the URL. Furthermore, my view of the page can&#8217;t be cached.
</li></ul>

<h3>Solution</h3>

<p><b>Create pages generically (same version for all users), and in this generic version, embed a remoting call which will customize the page for the current user.</b> Serve http://example.com/fightclub to everyone. Then everyone&#8217;s browser makes a further call to grab custom content (Multi-Stage Download). This additional call is unRESTful as the server will use cookies to decide what content to return, but at least we&#8217;ve isolated that component, served the bulk of the content without caching, and given the user something they can bookmark and send to their friends.</p>

<h3>References</h3>

<ul>
<li><a href="http://groups.yahoo.com/group/rest-discuss/message/5997">Post by Bill Venners</a></li>
<li><a href="http://www.artweb-design.de/articles/2006/04/28/thinking-about-restful-dynamic-web-applications">@rtweb Design: Thinking about RESTful dynamic web applications</a></li>
<li><a href="http://ajaxpatterns.org/RESTful_Service">RESTful Service @ AjaxPatterns</a> Note that it&#8217;s about Services, whereas this pattern sketch is about RESTfulness of the actual page.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://softwareas.com/ajax-as-a-remedy-for-the-cacheability-personalization-dilemma/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
