<?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>BarelyBlogging &#187; AJAX</title>
	<atom:link href="http://www.barelyfitz.com/blog/archives/category/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.barelyfitz.com/blog</link>
	<description>Patrick Fitzgerald of BarelyFitz Designs</description>
	<lastBuildDate>Thu, 13 Oct 2011 01:55:46 +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>FauxJAX: An AJAX Framework for Idiots</title>
		<link>http://www.barelyfitz.com/blog/archives/2006/04/13/334/</link>
		<comments>http://www.barelyfitz.com/blog/archives/2006/04/13/334/#comments</comments>
		<pubDate>Thu, 13 Apr 2006 13:26:11 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.barelyfitz.com/blog/archives/2006/04/13/334/</guid>
		<description><![CDATA[
Introducing FauxJAX.
Want to get your hands on some crazy delicious Web 2.0 venture capital, but don&#8217;t have mad AJAX skills? If you can copy and paste, you too can have a website that looks oh-so two thousand and six!
Simply use our framework to display content on your site, and we&#8217;ll do the rest. Don&#8217;t worry [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow"><img src="http://www.barelyfitz.com/projects/faux-jax/faux-jax.jpg" alt="fake eyball"/></div>
<p>Introducing <a href="http://www.barelyfitz.com/projects/faux-jax/">FauxJAX</a>.</p>
<p>Want to get your hands on some crazy delicious Web 2.0 venture capital, but don&#8217;t have mad AJAX skills? If you can copy and paste, you too can have a website that looks oh-so two thousand and six!</p>
<p>Simply use our framework to display content on your site, and we&#8217;ll do the rest. Don&#8217;t worry about outdated server-side technology because FauxJax is beyond all that. Way beyond. Like in the next century, you have no idea.</p>
<p><a href="http://www.barelyfitz.com/projects/faux-jax">Get FauxJAX today!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.barelyfitz.com/blog/archives/2006/04/13/334/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Screencast: Judge a Web App By Its Title</title>
		<link>http://www.barelyfitz.com/blog/archives/2006/04/06/305/</link>
		<comments>http://www.barelyfitz.com/blog/archives/2006/04/06/305/#comments</comments>
		<pubDate>Thu, 06 Apr 2006 13:02:15 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[YKMH]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[information architecture]]></category>
		<category><![CDATA[power user]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.barelyfitz.com/blog/archives/2006/04/06/305/</guid>
		<description><![CDATA[
The second episode of &#8220;You&#8217;re Killing Me Here!&#8221; (usability and design screencast series) discusses various uses of the page title (HTML TITLE element): in particular how you can use it to communicate with users of your web application.

View the Screencast (2.5 minutes)
]]></description>
			<content:encoded><![CDATA[<div class="shadow"><a href="http://www.barelyfitz.com/screencast/ykmh/"><img id="image276" alt="You're Killing Me Here!" src="http://www.barelyfitz.com/blog/upload/ykmh-logo-small.jpg" /></a></div>
<p>The second episode of &#8220;You&#8217;re Killing Me Here!&#8221; (usability and design screencast series) discusses various uses of the page title (HTML TITLE element): in particular how you can use it to communicate with users of your web application.<br />
<a href="http://www.barelyfitz.com/screencast/ykmh/ykmh-02-title/" /></p>
<p><a href="http://www.barelyfitz.com/screencast/ykmh/ykmh-02-title/">View the Screencast</a> (2.5 minutes)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barelyfitz.com/blog/archives/2006/04/06/305/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screencast: Diagnose a JavaScript Memory Leak in the Windows IE Browser</title>
		<link>http://www.barelyfitz.com/blog/archives/2006/03/30/289/</link>
		<comments>http://www.barelyfitz.com/blog/archives/2006/03/30/289/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 14:35:13 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://www.barelyfitz.com/blog/archives/2006/03/30/289/</guid>
		<description><![CDATA[
Here&#8217;s a new screencast:
Screencast: JavaScript Memory Leaks in the Windows IE Browser
This screencast by Patrick Fitzgerald of BarelyFitz Designs discusses how he diagnosed and fixed a memory leak in a JavaScript library. It&#8217;s a very simplified example, and the same techniques probably can&#8217;t be used for more complex web applications, but it might shed some [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow"><img alt="microphone" id="image292" src="http://www.barelyfitz.com/blog/upload/microphone.jpg" /></div>
<p>Here&#8217;s a new screencast:</p>
<p><a href="http://www.barelyfitz.com/screencast/javascript/memory-leak/">Screencast: JavaScript Memory Leaks in the Windows IE Browser</a></p>
<blockquote><p>This screencast by <a href="http://www.barelyfitz.com/homepages/patrick.fitzgerald/">Patrick Fitzgerald</a> of <a href="http://www.barelyfitz.com//">BarelyFitz Designs</a> discusses how he diagnosed and fixed a memory leak in a JavaScript library. It&#8217;s a very simplified example, and the same techniques probably can&#8217;t be used for more complex web applications, but it might shed some light on how these memory leaks occur.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.barelyfitz.com/blog/archives/2006/03/30/289/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eliminating redisplay flashes in JavaScript</title>
		<link>http://www.barelyfitz.com/blog/archives/2006/03/09/232/</link>
		<comments>http://www.barelyfitz.com/blog/archives/2006/03/09/232/#comments</comments>
		<pubDate>Thu, 09 Mar 2006 14:53:27 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Tabs]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[tabber]]></category>

		<guid isPermaLink="false">http://www.barelyfitz.com/blog/archives/2006/03/09/232/</guid>
		<description><![CDATA[The Holy Grail in creating dynamic HTML is to have a page that works perfectly even when JavaScript is disabled. You want your page to be beautiful and dynamic, but you also want it to be accessible, search-engine optimized, and printable.
To make this happen you start with plain, semantic HTML, then you add a JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>The Holy Grail in creating dynamic HTML is to have a page that works perfectly even when JavaScript is disabled. You want your page to be beautiful and dynamic, but you also want it to be accessible, search-engine optimized, and printable.</p>
<p>To make this happen you start with plain, semantic HTML, then you add a JavaScript layer to rework the page into something better:</p>
<p><img alt="JavaScript vs. No JavaScript" src="http://www.barelyfitz.com/blog/upload/js-vs-no-js.gif" /></p>
<p>One problem with this technique is that your JavaScript must run <em>after</em> the HTML has been set up and rendered on the page, so a user with a slow connection might see something like this using my <a href="http://www.barelyfitz.com/projects/tabber/">JavaScript tabbifier</a>:</p>
<p><img alt="Animated simulation of HTML rendered then re-rendering using JavaScript" src="http://www.barelyfitz.com/blog/upload/flashing-anim.gif" /></p>
<p>This is not too pretty, so obviously we want to make it stop.</p>
<p>Your first thought might be &#8220;I&#8217;ll just add a style to the content to make it hidden (CSS display:none), then my JavaScript will run and reveal it!&#8221;  But that puts a big crack in our Holy Grail, because if you use CSS to hide the content, it will not be visible to users who do not have JavaScript.</p>
<p>Here&#8217;s the method I used:</p>
<ol>
<li>Add a class <em>javascript-hide-me</em> to the content you need to hide, but do not define that class in your CSS.</li>
<li><em>Before</em> the content, use JavaScript to define the CSS class. The easiest way to do this is by using document.write in the head section of the page, but you will have to directly modify the DOM if you are serving XHTML pages that use MIME type application/xhtml+xml.</li>
<li><em>After</em> the content has been transformed, use JavaScript to remove the CSS class and reveal the content.</li>
</ol>
<p>Here are two examples, one that exhibits the flashing problem, and another that fixes it using the technique described above. Note that in order to see the flashing problem, you need a slow internet connection: I recommend throttling your connection using the excellent <a href="http://www.xk72.com/charles/">Charles Web Debugging Proxy</a>.</p>
<ul>
<li><a href="http://www.barelyfitz.com/projects/flashing-javascript/flashing.html">flashing</a></li>
<li><a href="http://www.barelyfitz.com/projects/flashing-javascript/no-flashing.html">flashing fixed</a></li>
</ul>
<h3>Updates 2006-03-09</h3>
<p>Welcome, <a href="http://ajaxian.com/archives/eliminating-redisplay-flashes-in-javascript">Ajaxians</a>!</p>
<p>Bobby <a href="http://www.bobbyvandersluis.com/articles/dynamicCSS.php">describes</a> an alternate technique in case you are serving XHTML pages that use MIME type application/xhtml+xml.</p>
<p><a href="http://mrclay.org/">Steve Clay</a> makes a valid point that we should check for DOM compatibility before writing the styles on the page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barelyfitz.com/blog/archives/2006/03/09/232/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

