<?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>VT's Tech Blog &#187; Ajax</title>
	<atom:link href="http://blogs.vinuthomas.com/category/programming/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.vinuthomas.com</link>
	<description>My Tech Discovery Blog on PHP, Ajax, Security and Web 2.0</description>
	<lastBuildDate>Thu, 04 Mar 2010 06:39:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google: Ajax Libraries API</title>
		<link>http://blogs.vinuthomas.com/2008/05/28/google-ajax-libraries-api/</link>
		<comments>http://blogs.vinuthomas.com/2008/05/28/google-ajax-libraries-api/#comments</comments>
		<pubDate>Wed, 28 May 2008 15:07:15 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/?p=512</guid>
		<description><![CDATA[Here&#8217;s some cool stuff &#8211; Google&#8217;s Hosting some popular Javascript Ajax libraries like jQuery, prototype and the likes on their servers. You use this service to serve the supported libraries straight off Google. They also provide you with the option to load a particular version of the library so you won&#8217;t have to keep checking [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some cool stuff &#8211; Google&#8217;s Hosting some popular Javascript Ajax libraries like jQuery, prototype and the likes on their servers. You use this service to serve the supported libraries straight off Google. They also provide you with the option to load a particular version of the library so you won&#8217;t have to keep checking your code everytime a latest release is made.</p>
<p>Here&#8217;s how you would load jQuery version 1.2.3 using this API:</p>

<div class="wp_codebox"><table><tr id="p5122"><td class="code" id="p512code2"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://www.google.com/jsapi&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
  <span style="color: #006600; font-style: italic;">// Load jQuery </span>
  google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;jquery&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1.2.3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #006600; font-style: italic;">//Continue using jQuery</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>The AJAX Libraries API is a content distribution network and loading architecture for the most popular open source JavaScript libraries. By using the <a href="http://code.google.com/apis/ajax/documentation/">Google AJAX API Loader&#8217;s</a> <code>google.load()</code> method, your application has high speed, globaly available access to a growing list of the most popular JavaScript open source libraries including:</p>
<ul>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery">jQuery</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#prototype">prototype</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#script_aculo_us">script.aculo.us</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools">MooTools</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#dojo">dojo</a></li>
</ul>
<p>Google works directly with the key stake holders for each library effort and accept the latest stable versions as they are released. Once we host a release of a given library, we are committed to hosting that release indefinitely.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="425" height="355"><param name="wmode" value="transparent"></param><param name="src" value="http://www.youtube.com/v/sHMeTbkFuIk&amp;color1=d6d6d6&amp;color2=f0f0f0"><embed type="application/x-shockwave-flash" src="http://www.youtube.com/v/sHMeTbkFuIk&amp;color1=d6d6d6&amp;color2=f0f0f0" wmode="transparent" width="425" height="355"></embed></param></object></p>
<p>Links:</p>
<p><a href="http://code.google.com/apis/ajaxlibs/">Google Ajax Libraries</a></p>
<p><a href="http://http://code.google.com/apis/ajaxlibs/documentation/">Documentation</a></p>
<fieldset class="zemanta-related" style="margin: 0.5em 0pt 1em; padding: 0pt;">
<legend class="zemanta-title">Related articles</legend>
<ul class="zemanta-article-ul" style="margin: 1em 0pt 1.5em; padding: 0pt;">
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://googlesystem.blogspot.com/2008/05/google-hosts-popular-javascript.html" target="_blank">Google Hosts Popular JavaScript Libraries</a> [via Zemanta]</li>
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://ajaxian.com/archives/announcing-ajax-libraries-api-speed-up-your-ajax-apps-with-googles-infrastructure" target="_blank">Announcing AJAX Libraries API: Speed up your Ajax apps with Google&#8217;s infrastructure</a> [via Zemanta]</li>
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://code.google.com/apis/ajaxlibs/" target="_blank">Google Ajax Libraries API</a> [via Zemanta]</li>
</ul>
</fieldset>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/86805db0-4109-4409-ac97-7f149d591c94/" title="Zemified by Zemanta"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=86805db0-4109-4409-ac97-7f149d591c94" alt="Zemanta Pixie"/></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2008/05/28/google-ajax-libraries-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PersistJS: Cross Browser Client-Side Persistent Storage</title>
		<link>http://blogs.vinuthomas.com/2008/05/27/persistjs-cross-browser-client-side-persistent-storage/</link>
		<comments>http://blogs.vinuthomas.com/2008/05/27/persistjs-cross-browser-client-side-persistent-storage/#comments</comments>
		<pubDate>Tue, 27 May 2008 03:30:50 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/?p=509</guid>
		<description><![CDATA[
PersistJS is a simple to use Javascript to store persistent data on the client Browser. This library supports multiple back-ends which are listed later. The following example will show you how easy it is to store and retrieve data using PersistJS.
To Store Data:
// create a new client-side persistent data store
var store = new Persist.Store('My Data [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; float: right;"><a href="http://commons.wikipedia.org/wiki/Image:Firefox_Cookie_Manager.png" target="_blank" rel="lightbox[509]"><img style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Firefox_Cookie_Manager.png/202px-Firefox_Cookie_Manager.png" alt="The Firefox Cookie Manager, showing the details of various cookies by domain" /></a></div>
<p>PersistJS is a simple to use Javascript to store persistent data on the client Browser. This library supports multiple back-ends which are listed later. The following example will show you how easy it is to store and retrieve data using PersistJS.</p>
<p>To Store Data:</p>
<pre><code>// create a new client-side persistent data store
var store = new Persist.Store('My Data Store');

// pretend data
var data = "pretend this is really long data that won't fit in a cookie";

// save data in store
store.set('saved_data', data);</code></pre>
<p>To Retreive Data:</p>
<pre><code>// get data back from store, and prompt user with it
store.get('saved_data', function(ok, val) {
  if (ok)
    alert('saved data = ' + val);
});</code></pre>
<p>PersistJS addresses all of the issues above. It currently supports persistent client-side storage through the following backends:</p>
<p>* flash: Flash 8 persistent storage.<br />
* gears: <a class="zem_slink" title="Google Gears" rel="homepage" href="http://gears.google.com/" target="_blank">Google Gears</a>-based persistent storage.<br />
* localstorage: <a class="zem_slink" title="HTML 5" rel="wikipedia" href="http://en.wikipedia.org/wiki/HTML_5" target="_blank">HTML5</a> draft storage.<br />
* whatwg_db: HTML5 draft database storage.<br />
* globalstorage: HTML5 draft storage (old spec).<br />
* ie: Internet Explorer userdata behaviors.<br />
* cookie: Cookie-based persistent storage.</p>
<p>You can also remove storage engines you don&#8217;t want to use in PersistJS by removing that storage engine by code:</p>
<pre class="code"><code>// never use cookies for persistent storage
Persist.remove('cookie');</code></pre>
<p>Links:<br />
<a href="http://pablotron.org/?cid=1557">PersistJS Project Home Page</a><br />
<a href="http://pablotron.org/files/persist-js-0.1.0.tar.gz">Download PersistJS</a></p>
<fieldset class="zemanta-related" style="margin: 0.5em 0pt 1em; padding: 0pt;">
<legend class="zemanta-title">Related articles</legend>
<ul class="zemanta-article-ul" style="margin: 1em 0pt 1.5em; padding: 0pt;">
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://www.masternewmedia.org/news/2008/04/02/work_offline_even_when_not.htm" target="_blank">Work Offline, Even When Not Connected To The Net With Google Docs Offline New Feature &#8211; Video Intro</a> [via Zemanta]</li>
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://ajaxian.com/archives/dojo-storage-updated-for-10" target="_blank">Dojo Storage updated for 1.0</a> [via Zemanta]</li>
<li class="zemanta-article" style="margin: 0.5em 2em;"><a title="Open in new window" href="http://ajaxian.com/archives/browser-cookie-restriction-research" target="_blank">Browser cookie restriction research</a> [viaÂ Zemanta]</li>
</ul>
</fieldset>
<div class="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/pixie.png?x-id=8554612c-b3bf-4d0e-bd6e-6e259843dc80" alt="" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2008/05/27/persistjs-cross-browser-client-side-persistent-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageFlow &#8211; Javascript Image Gallery</title>
		<link>http://blogs.vinuthomas.com/2008/01/06/imageflow-javascript-image-gallery/</link>
		<comments>http://blogs.vinuthomas.com/2008/01/06/imageflow-javascript-image-gallery/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 04:19:26 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[gallery]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2008/01/06/imageflow-javascript-image-gallery/</guid>
		<description><![CDATA[Here&#8217;s a cool image gallery script written in Javascript. It&#8217;s quite easy to integrate into your site. This is how the author describes ImageFlow:
ImageFlow is a picture gallery, which allows an intuitive image handling. The basic idea is to digitally animate the thumbing through a physical image stack. That intuitive handling is automatically caused by [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Here&#8217;s a cool image gallery script written in Javascript. It&#8217;s quite easy to integrate into your site. This is how the author describes ImageFlow:</p>
<blockquote><p>ImageFlow is a picture gallery, which allows an intuitive image handling. The basic idea is to digitally animate the thumbing through a physical image stack. That intuitive handling is automatically caused by the metaphorical use of the well known process of thumbing through.</p></blockquote>
<p align="left">The script is compatible with the browsers on Windows, OSX and Linux:</p>
<ul>
<li>IE 6.0+</li>
<li>Firefox 2.0.0.9+</li>
<li>Opera 6.0+</li>
<li>Safari 1.3.2+</li>
<li>KonquerorÂ  3.5.7</li>
</ul>
<p align="center">
<p style="text-align: center"><img src="http://blogs.vinuthomas.com/wp-content/uploads/2008/01/imageflow.jpg" alt="ImageFlow" /></p>
<p align="left">The current version of ImageFlow&#8217;s features are listed below :</p>
<ul>
<li>Supports most image formats</li>
<li>Supports large amounts of images (&gt;100)</li>
<li>100% JavaScript</li>
<li>Scroll bar</li>
<li>Mouse wheel support</li>
<li>Arrow-key support</li>
<li>Loading bar</li>
<li>Captions</li>
<li>Supports image links</li>
<li>Scales 100% dynamically</li>
<li>Implemented using div Tags</li>
</ul>
<p>Links:<br />
<a href="http://finnrudolph.de/ImageFlow/Download">Download ImageFlow 0.8</a><br />
<a href="http://imageflow.finnrudolph.de/">ImageFlow Site</a><br />
<a href="http://finnrudolph.de/ImageFlow/Documentation">ImageFlow Documentation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2008/01/06/imageflow-javascript-image-gallery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Record mouse movement using AJAX</title>
		<link>http://blogs.vinuthomas.com/2007/10/22/record-mouse-movement-using-ajax/</link>
		<comments>http://blogs.vinuthomas.com/2007/10/22/record-mouse-movement-using-ajax/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 14:14:40 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/10/22/record-mouse-movement-using-ajax/</guid>
		<description><![CDATA[Instead of eyeball tracking for usability professionals, here&#8217;s a way to track the mouse movements and click events of a user on a page.
 The â€œmoveloggerâ€? records the mouse movement a users does on a web site. Just before the user leaves the current page, the recorded data get posted back to the server using [...]]]></description>
			<content:encoded><![CDATA[<p>Instead of eyeball tracking for usability professionals, here&#8217;s a way to track the mouse movements and click events of a user on a page.</p>
<blockquote><p> The â€œmoveloggerâ€? records the mouse movement a users does on a web site. Just before the user leaves the current page, the recorded data get posted back to the server using AJAX.<br />
The cool thing is that you can â€œreplayâ€? these movements afterwards.</p></blockquote>
<p>Want to try out a demo ? Check this link: <a href="http://pure.rednoize.com/movelogger/">http://pure.rednoize.com/movelogger/</a><br />
Link: <a href="http://pure.rednoize.com/2007/10/18/record-mouse-movement-using-javascript-and-ajax/">puRe aka Marcel Oelke Â» Record mouse movement using Javascript and AJAX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/10/22/record-mouse-movement-using-ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Really Simple History &#8211; History for Ajax</title>
		<link>http://blogs.vinuthomas.com/2007/09/18/really-simple-history-history-for-ajax/</link>
		<comments>http://blogs.vinuthomas.com/2007/09/18/really-simple-history-history-for-ajax/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 12:10:49 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/09/18/really-simple-history-history-for-ajax/</guid>
		<description><![CDATA[If you&#8217;re working on Ajax based websites, you&#8217;ll always face usability problems  when users click on the Back or Forward buttons on the broswer.  Using Really Simple History (RSH) allows you over come this issue.
The Really Simple History (RSH) framework makes it easy for AJAX applications to incorporate bookmarking and back and button [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re working on Ajax based websites, you&#8217;ll always face usability problems  when users click on the Back or Forward buttons on the broswer.  Using Really Simple History (RSH) allows you over come this issue.</p>
<p><em>The Really Simple History (RSH) framework makes it easy for AJAX applications to incorporate bookmarking and back and button support. By default, AJAX systems are not bookmarkable, nor can they recover from the user pressing the browser&#8217;s back and forward buttons. The RSH library makes it possible to handle both cases.</em></p>
<p><em>In addition, RSH provides a framework to cache transient session information that persists after a user leaves the web page. This cache is used by the RSH framework to help with history issues, but can also be used by your own applications to improve application performance. The cache is linked to a single instance of the web page, and will disappear when the user closes their browser or clear their browser&#8217;s cache.</em></p>
<p><em>RSH works on Internet Explorer 6+ and Gecko-based browsers, like Firefox. Safari is not supported.</em></p>
<p>Link: <a href="http://codinginparadise.org/projects/dhtml_history/#what">Really Simple History</a><br />
Demo Link: <a href="http://codinginparadise.org/projects/dhtml_history/testDhtmlHistory.html">testDhtmlHistory.html</a> (try using the browser back button after you get to this demo)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/09/18/really-simple-history-history-for-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caching Wordpress offline using Google Gears</title>
		<link>http://blogs.vinuthomas.com/2007/06/05/caching-wordpress-offline-using-google-gears/</link>
		<comments>http://blogs.vinuthomas.com/2007/06/05/caching-wordpress-offline-using-google-gears/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 03:43:38 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/06/05/caching-wordpress-offline-using-google-gears/</guid>
		<description><![CDATA[
If you&#8217;re still wondering what you can do with Google gears, here are a tutorials to get you started on the right track. Nick Halstead takes you though how to cache Wordpress pages using Google Gears:
&#8220;I was instantly fascinated by Google Gears so I had to immediately try out the sample code that you can [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><img src="http://blogs.vinuthomas.com/wp-content/uploads/2007/06/gears_sm.png" alt="Google Gears" /></p>
<p align="left">If you&#8217;re still wondering what you can do with Google gears, here are a tutorials to get you started on the right track. Nick Halstead takes you though how to cache Wordpress pages using Google Gears:</p>
<p align="left">&#8220;<em>I was instantly fascinated by <a href="http://code.google.com/apis/gears/index.html" target="_blank">Google Gears</a> so I had to immediately try out the sample code that you can download. The tutorial on the website gives a simple example of how to cache a few files using the <a href="http://code.google.com/apis/gears/api_localserver.html#ResourceStore" target="_blank">Resource Store</a>. It makes it very easy to setup a <a href="http://en.wikipedia.org/wiki/JavaScript_Object_Notation" target="_blank">JSON</a> manifest file that contains which pages you want to have cached.</em>&#8220;</p>
<p align="left">Link: <a href="http://blog.assembleron.com/2007/05/31/google-gears-caching-of-wordpress-in-php/">Google Gears Caching of WordPress in PHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/06/05/caching-wordpress-offline-using-google-gears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Gears for offline apps</title>
		<link>http://blogs.vinuthomas.com/2007/05/31/google-gears-for-offline-apps/</link>
		<comments>http://blogs.vinuthomas.com/2007/05/31/google-gears-for-offline-apps/#comments</comments>
		<pubDate>Thu, 31 May 2007 06:51:46 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[General Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/05/31/google-gears-for-offline-apps/</guid>
		<description><![CDATA[Google has released a beta version of Google Gears which is an open source browser extension which&#160; enables web applications to provide offline functionality using following JavaScript APIs.
Here&#8217;s what you can do with the API&#8217;s:

Store and serve application resources locally
Store data locally in a fully-searchable relational database
Run asynchronous Javascript to improve application responsiveness

	 									You can [...]]]></description>
			<content:encoded><![CDATA[<p>Google has released a beta version of Google Gears which is an open source browser extension which&nbsp; enables web applications to provide offline functionality using following JavaScript APIs.</p>
<p>Here&#8217;s what you can do with the API&#8217;s:
<ul>
<li>Store and serve application resources locally</li>
<li>Store data locally in a fully-searchable relational database</li>
<li>Run asynchronous Javascript to improve application responsiveness</li>
</ul>
<p>	 									You can take a look at the sample applications at <a href="http://code.google.com/apis/gears/sample.html">http://code.google.com/apis/gears/sample.html</a> once you install the browser plugin. </p>
<p>The news out there is that Google&#8217;s planning to offer offline support for their current applications like Google Reader, Docs &amp; Spreadsheets.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/05/31/google-gears-for-offline-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPLiveX &#8211; Tutorial</title>
		<link>http://blogs.vinuthomas.com/2007/05/18/phplivex-tutorial/</link>
		<comments>http://blogs.vinuthomas.com/2007/05/18/phplivex-tutorial/#comments</comments>
		<pubDate>Fri, 18 May 2007 07:26:49 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/05/18/phplivex-tutorial/</guid>
		<description><![CDATA[If you&#8217;re looking for the quickest way to get your PHP functionality Ajax enabled, you&#8217;ve got to take a look at PHPLiveX. It greatly simplifies the process of Ajaxifying your PHP code without knowing Javascript code.
Let&#8217;s see how to Ajaxify a simple PHP function. Let&#8217;s create a simple function to output the server time:

function myServerTime(){
	return [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re looking for the quickest way to get your PHP functionality Ajax enabled, you&#8217;ve got to take a look at PHPLiveX. It greatly simplifies the process of Ajaxifying your PHP code without knowing Javascript code.</p>
<p>Let&#8217;s see how to Ajaxify a simple PHP function. Let&#8217;s create a simple function to output the server time:</p>

<div class="wp_codebox"><table><tr id="p3378"><td class="code" id="p337code8"><pre class="html" style="font-family:monospace;">function myServerTime(){
	return date(&quot;D M j G:i:s T Y&quot;);
}</pre></td></tr></table></div>

<p>First you have to include the PHPLiveX library and register your function. Here&#8217;s how to to it:</p>

<div class="wp_codebox"><table><tr id="p3379"><td class="code" id="p337code9"><pre class="html" style="font-family:monospace;">&lt;? php
  include 'PHPLiveX.php';
&nbsp;
	function myServerTime(){
		return date(&quot;D M j G:i:s T Y&quot;);
	}
&nbsp;
  $phplive = new PHPLiveX(&quot;myServerTime&quot;); //Register the function with PHPLiveX
?&gt;</pre></td></tr></table></div>

<p>$phplive = new PHPLiveX(&#8220;myServerTime&#8221;); is used to register our function myServerTime with PHPLiveX</p>
<p>Next let&#8217;s build our HTML Display. Let&#8217;s keep it simple, but allowing the user to click a link to get the updated server time:</p>

<div class="wp_codebox"><table><tr id="p33710"><td class="code" id="p337code10"><pre class="html" style="font-family:monospace;"> &lt;a href=&quot;&quot;&gt;Get Server Time &lt;/a&gt;</pre></td></tr></table></div>

<p>Now we&#8217;ll have to create areas to display our Loading Status and the results back from the server. Let&#8217;s create two divs for this.</p>

<div class="wp_codebox"><table><tr id="p33711"><td class="code" id="p337code11"><pre class="html" style="font-family:monospace;">&lt;span id=&quot;loading&quot; style=&quot;visibility:hidden&quot;&gt;Loading...&lt;/span&gt;
&lt;span id=&quot;serverResult&quot; style='clear:both;'&gt;&lt;/span&gt;</pre></td></tr></table></div>

<p>You&#8217;ll notice that the loading span&#8217;s visibility has been set to hidden by default. PHPLiveX will use this to show the loading indicator when an action is being performed.</p>
<p>Now let&#8217;s get the entire HTML created. PHPLiveX autogenerates the Javascript required to create the AJAX calls, this has to take place in the html head section. To generate the Javascript all you need to call is $phplive->Run(). So let&#8217;s get to the entire script with the HTML:</p>

<div class="wp_codebox"><table><tr id="p33712"><td class="code" id="p337code12"><pre class="html" style="font-family:monospace;">&lt;? php
  include 'PHPLiveX.php';
&nbsp;
	function myServerTime(){
		return date(&quot;D M j G:i:s T Y&quot;);
	}
&nbsp;
  $phplive = new PHPLiveX(&quot;myServerTime&quot;); //Register the function with PHPLiveX
?&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;My Ajax Server Time&lt;/title&gt;
		&lt;script&gt;
			&lt;?php
				$phplive-&gt;Run();
			?&gt;
		&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&nbsp;
&lt;a href=&quot;javascript:myServerTime('', 'target=serverResult,preload=loading');&quot;&gt;Get Server Time&lt;/a&gt;
&nbsp;
&lt;span id=&quot;loading&quot; style=&quot;visibility:hidden&quot;&gt;Loading...&lt;/span&gt;
&lt;span id=&quot;serverResult&quot;&gt;&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>You&#8217;ll notice that in the Get Server Time link there&#8217;s a little bit of Javascript &#8211; javascript:myServerTime(&#8221;, &#8216;target=serverResult,preload=loading&#8217;);. That&#8217;s used to call the myServerTime function from Javascript. The first parameter is null since our function myServerTime doesn&#8217;t accept any parameters. The second parameter tells PHPLiveX to send the output to the &#8220;serverResult&#8221; div and use the &#8220;loading&#8221; div as the preloader.</p>
<p>That&#8217;s it ! You can see a demo of this <a href="http://www.vinuthomas.com/code/phplivex/demo/">here</a>.<br />
Get the source code for this tutorial <a href="http://www.vinuthomas.com/code/phplivex/demo/phplivex_tutorial.zip">here</a>.  This includes version 2.2 of the PHPLiveX library.</p>
<p>I&#8217;ll put up a tutorial on how to use PHPLiveX for a whois lookup next week.</p>
<p>Link to PHPLiveX: <a href="http://phplivex.sourceforge.net/">PHPLiveX -> An Open Source PHP/Ajax Library</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/05/18/phplivex-tutorial/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>miniajax.com</title>
		<link>http://blogs.vinuthomas.com/2007/03/05/miniajaxcom/</link>
		<comments>http://blogs.vinuthomas.com/2007/03/05/miniajaxcom/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 03:27:45 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2007/03/05/miniajaxcom/</guid>
		<description><![CDATA[
 Miniajax.com is a showcase ofwhat&#8217;s hot in Ajax, with link to demos and tutorials showing how they&#8217;re done. Here are some of what you can see at miniajax.com

 Ajax StarRating
Ajax Contact Form
In-place editing (like Flickr)
Bubble Tool-tips
Heatmap for websites and much more&#8230;

Link: miniajax.com
]]></description>
			<content:encoded><![CDATA[<p align="center"><img src="http://blogs.vinuthomas.com/wp-content/uploads/2007/03/miniajax-screenshot-thumb.png" alt="miniajax.com" /></p>
<p> Miniajax.com is a showcase ofwhat&#8217;s hot in Ajax, with link to demos and tutorials showing how they&#8217;re done. Here are some of what you can see at miniajax.com</p>
<ul>
<li> Ajax StarRating</li>
<li>Ajax Contact Form</li>
<li>In-place editing (like Flickr)</li>
<li>Bubble Tool-tips</li>
<li>Heatmap for websites and much more&#8230;</li>
</ul>
<p>Link: <a href="http://www.miniajax.com" title="miniajax.com">miniajax.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2007/03/05/miniajaxcom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL Designer</title>
		<link>http://blogs.vinuthomas.com/2006/08/28/sql-designer/</link>
		<comments>http://blogs.vinuthomas.com/2006/08/28/sql-designer/#comments</comments>
		<pubDate>Mon, 28 Aug 2006 09:22:25 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/08/28/sql-designer/</guid>
		<description><![CDATA[
Looking for a quick way to design Databases without having to download software? Here&#8217;s an Ajax application which allows you to design databases online without having anything other than a web browsers installed on your system  
This application allows you to define your tables and rows through an easy to use web interface. You [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img src="http://blogs.vinuthomas.com/wp-content/uploads/2006/08/db.jpg" /></div>
<p>Looking for a quick way to design Databases without having to download software? Here&#8217;s an Ajax application which allows you to design databases online without having anything other than a web browsers installed on your system <img src='http://blogs.vinuthomas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This application allows you to define your tables and rows through an easy to use web interface. You can also link tables together by dragging and dropping the primary keys into other tables. You can export the database tables as XML, MS SQL and SQL Server statements.</p>
<p>Link: <a href="http://ondras.praha12.net/sql/demo/">SQL Designer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/08/28/sql-designer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AJAX ActiveTable</title>
		<link>http://blogs.vinuthomas.com/2006/08/08/ajax-activetable/</link>
		<comments>http://blogs.vinuthomas.com/2006/08/08/ajax-activetable/#comments</comments>
		<pubDate>Tue, 08 Aug 2006 13:32:45 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/08/08/ajax-activetable/</guid>
		<description><![CDATA[Here&#8217;s a cool use for Ajax &#8211; an active table were users can edit and add columns into a table in HTML.
The ActiveTable library creates an editable HTML table from a MySQL database table.
Link: AJAX ActiveTable &#8211; Jonathan Diehl&#8217;s Wiki

Here&#8217;s a Demo of Ajax Active Table (This loads from the author&#8217;s site in an iframe [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a cool use for Ajax &#8211; an active table were users can edit and add columns into a table in HTML.</p>
<p>The ActiveTable library creates an editable HTML table from a MySQL database table.</p>
<p>Link: <a href="http://wiki.donttouchme.org/index.php/AJAX_ActiveTable">AJAX ActiveTable &#8211; Jonathan Diehl&#8217;s Wiki</a></p>
<p><span id="more-227"></span></p>
<p>Here&#8217;s a Demo of Ajax Active Table (This loads from the author&#8217;s site in an iframe and may take some time to load):</p>
<p><iframe scrolling="no" frameborder="0" style="width: 460px; height: 190px" marginwidth="1" marginheight="1" src="http://www.donttouchme.org/activetable"> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/08/08/ajax-activetable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Handling large files with(out) PHP</title>
		<link>http://blogs.vinuthomas.com/2006/08/04/handling-large-files-without-php-thinkphp-devblog/</link>
		<comments>http://blogs.vinuthomas.com/2006/08/04/handling-large-files-without-php-thinkphp-devblog/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 08:34:19 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/08/04/handling-large-files-without-php-thinkphp-devblog/</guid>
		<description><![CDATA[As one man was quoted &#8220;640K of memory should be enough for anybody&#8221; no one will need to access more than 2 GB data. What happens if you &#8211; just for scientific reasons of course &#8211; try to access larger files using your 32bit hardware and your favorite programming language PHP?
Read on: Handling large files [...]]]></description>
			<content:encoded><![CDATA[<p>As one man was quoted &#8220;640K of memory should be enough for anybody&#8221; no one will need to access more than 2 GB data. What happens if you &#8211; just for scientific reasons of course &#8211; try to access larger files using your 32bit hardware and your favorite programming language PHP?</p>
<p>Read on: <a href="http://blog.thinkphp.de/archives/131-Handling-large-files-without-PHP.html">Handling large files with(out) PHP &#8211; ThinkPHP /dev/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/08/04/handling-large-files-without-php-thinkphp-devblog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating an Ajax feedback form with My-Bic</title>
		<link>http://blogs.vinuthomas.com/2006/07/11/creating-an-ajax-feedback-form-with-my-bic/</link>
		<comments>http://blogs.vinuthomas.com/2006/07/11/creating-an-ajax-feedback-form-with-my-bic/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 09:36:48 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/07/11/creating-an-ajax-feedback-form-with-my-bic/</guid>
		<description><![CDATA[My-Bic is an Ajax framework for PHP. It allows you to easily integrate Ajax features into your PHP applications. Let&#8217;s see how to create a feedback form with My-Bic.
Installation and Setup:
Download the latest version of My-Bic (v0.6.3) from http://www.litfuel.net/mybic/index.html?page=download and copy the files over a folder under the webroot of your server.
You&#8217;ll need to change [...]]]></description>
			<content:encoded><![CDATA[<p>My-Bic is an Ajax framework for PHP. It allows you to easily integrate Ajax features into your PHP applications. Let&#8217;s see how to create a feedback form with My-Bic.</p>
<p><strong>Installation and Setup:</strong></p>
<p>Download the latest version of My-Bic (v0.6.3) from <a target="_blank" href="http://www.litfuel.net/mybic/index.html?page=download">http://www.litfuel.net/mybic/index.html?page=download</a> and copy the files over a folder under the webroot of your server.</p>
<p>You&#8217;ll need to change the following lines in the mybic_server.php file :</p>
<p><code>define("SERVER_ROOT", "d:/wamp/www/mybic/");</code><br />
  This defines the base path of the folder where this file exists.</p>
<p><code>define("INC_PATH", SERVER_ROOT);</code><br />
  This defines where your custom classes will be places. Let&#8217;s leave this as it is for this tutorial.</p>
<p><strong>Client-Side</strong><br />
  Let&#8217;s start with a basic form which you&#8217;ll need for feedback:</p>
<p><code><br />
<h1>Feedback Form</h1>
<div id="message"></div>
<form id="comments">
  Name :<br />
<input type="text" name="name" maxlength="255">
  Email:<br />
<input type="text" name="email" maxlength="255">
  Feedback: <textarea cols="40" rows="5" name="feedback"></textarea></p>
<input type="submit" name="submit"></code><br />
<span id="more-191"></span><br />
  In this form we&#8217;ll have to create an action when the user clicks on the submit button, so let&#8217;s change the last line of code to:<br />
<code><br />
<input type="submit" name="submit" onclick="sendComment(); return false;"></code></p>
<p>Let&#8217;s check out the JavaScript required to power this Ajaxified Feedback form.<br />
  In the HEAD section of the HTML, we&#8217;ll have to include the &#8220;mybic.js&#8221; file required to power this application. We&#8217;ll also have to create the sendComment() function which will be called when the user clicks on the submit button. Let&#8217;s take a look at the following code:</p>
<p><code><head><br />
<script type="text/javascript" src="mybic.js"></script><br />
<script>
  var ajaxObj = new XMLHTTP("mybic_server.php");
  ajaxObj.debug = 1;
  function sendComment()
  {
	  ajaxObj.format = "TEXT";
	  var form_vars = ajaxObj.getForm('comments');
	  ajaxObj.call('action=ajaxfeedback'+form_vars, showResults);
  }
  function showResults(resp)
  {
      document.getElementById('message').innerHTML = resp;
  }
</script></code></p>
<p>We have the required JavaScript file included using the line:<br />
<code><script type="text/javascript" src="mybic.js"></script></code></p>
<p>We&#8217;re instantiating a new Ajax Object using:<br />
<code>var ajaxObj = new XMLHTTP("mybic_server.php");</code></p>
<p>We&#8217;re setting up debugging by using <code>ajaxObj.debug = 1;</code> this gives a window which shows us what requests are posted and the results from the server.</p>
<p><code>function sendComment()<br />
  {<br />
	  ajaxObj.format = "TEXT";<br />
	  var form_vars = ajaxObj.getForm('feedback');<br />
	  ajaxObj.call('action=ajaxfeedback'+form_vars, showResults);<br />
  }</code></p>
<p>In the code above, we&#8217;re setting up the function to actually execute the Ajax call. The first line in the function specifies that we&#8217;re expecting the return results in Text instead of JSON.</p>
<p><code>var form_vars = ajaxObj.getForm('comments');</code> will loop through the form to get all the fields and values.</p>
<p><code>ajaxObj.call('action=ajaxfeedback'+form_vars, showResults);</code> Calls the class ajaxfeedback on the server with the form values and will call the showResults function to output the server response back to screen.</p>
<p><code>function showResults(resp)<br />
  {<br />
  	document.getElementById('message').innerHTML = resp;<br />
  }</code></p>
<p>The showResults function replaces the contents of the message div with the response back from the server.</p>
<p>Let&#8217;s save this file as ajaxfeedback.html</p>
<p>Here&#8217;s the entire code for this file:<br />
<code><html><br />
<head><br />
<script type="text/javascript" xsrc="mybic.js" ></script><br />
<script>
  var ajaxObj = new XMLHTTP("mybic_server.php");
  ajaxObj.debug = 1;
  function sendComment()
  {
	  ajaxObj.format = "TEXT";
	  var form_vars = ajaxObj.getForm('comments');&iuml;&iquest;&frac12; loop through my form for me
	  ajaxObj.call('action=ajaxfeedback'+form_vars, showResults);
  }
  function showResults(resp)
  {
      document.getElementById('message').innerHTML = resp;
  }
</script><br />
</head><br />
<body></p>
<h1>Feedback Form</h1>
<div id="message"></div>
<form id="comments">
  Name :<br />
<input type="text" name="name" maxlength="255">
  Email:<br />
<input type="text" name="email" maxlength="255">
  Feedback: <textarea cols="40" rows="5" name="feedback"></textarea></p>
<input type="submit" name="submit" onclick="sendComment(); return false;">
</form>
<p></body><br />
</html></code></p>
<p><strong>Server Side</strong><br />
  On the client side, we&#8217;re calling a class ajaxfeedback to process the request. Let&#8217;s get to creating the server-side program to process the request. The file you&#8217;ll have to create will be ajaxfeedback.php. In this file let&#8217;s put in the following code:</p>
<p><code><?php<br />
class ajaxfeedback {<br />
    var $queryVars;<br />
    function ajaxfeedback( $queryVars )<br />
    {<br />
        $this->queryVars = $queryVars;<br />
    }<br />
    /**<br />
    * Method to return the status of the AJAX transaction<br />
    *<br />
    * @return string A string of raw HTML fetched from the Server<br />
    */<br />
    function return_response()<br />
    {<br />
        $resp = 'ok';<br />
        return $resp;<br />
    }<br />
    function is_authorized()<br />
    {<br />
        return true;<br />
    }<br />
} </p>
<p>?></code></p>
<p>Looking at the code, you&#8217;ll see that we&#8217;re creating a class called ajaxfeedback which has a constructor which takes the query variables and sets it internally.<br />
  The return_response method is used to return the status of the Ajax transaction. In this method let&#8217;s add a little bit of form validation:</p>
<p><code>function return_response()<br />
{<br />
    // Save Inputs to database here and create the return<br />
    // result<br />
    if ( $this->queryVars['name'] == "" ) {<br />
        $resp = "Please enter your name";<br />
    } else<br />
    if ( $this->queryVars['email'] == "" ) {<br />
        $resp = "Please enter your email id";<br />
    } else<br />
    if ( $this->queryVars['feedback'] == "" ) {<br />
        $resp = "Please enter your feedback";<br />
    } else {<br />
        // Save Inputs to database here<br />
        $resp = "Thank you for your comments";<br />
    }<br />
    return $resp;<br />
} </code></p>
<p>In the last else statement, you can insert your database routine to save the form values. Once saved we&#8217;re passing on a confirmation message back to the client-side.</p>
<p>Now your completed ajaxfeedback.php should look like :</p>
<p><code><?php<br />
class ajaxfeedback {<br />
    var $queryVars;<br />
    function ajaxfeedback( $queryVars )<br />
    {<br />
        $this->queryVars = $queryVars;<br />
    }<br />
    /**<br />
    * *<br />
    * Method to return the status of the AJAX transaction<br />
    * <br />
    *<br />
    * @return string A string of raw HTML fetched from the Server<br />
    */<br />
    function return_response()<br />
    {<br />
        // Save Inputs to database here and create the return<br />
        // result<br />
        if ( $this->queryVars['name'] == "" ) {<br />
            $resp = "Please enter your name";<br />
        } else<br />
        if ( $this->queryVars['email'] == "" ) {<br />
            $resp = "Please enter your email id";<br />
        } else<br />
        if ( $this->queryVars['feedback'] == "" ) {<br />
            $resp = "Please enter your feedback";<br />
        } else {<br />
            // Save Inputs to database here<br />
            $resp = "Thank you for your comments";<br />
        }<br />
        return $resp;<br />
    }<br />
    function is_authorized()<br />
    {<br />
        return true;<br />
    }<br />
} </p>
<p>?></code></p>
<p>Your Ajax feedback form is ready to use. Fire up your browser and open ajaxfeedback.html in your browser. If you&#8217;d like to see a demo of this form, head over to :</p>
<p><a target="_blank" href="http://vinuthomas.com/code/my-bic/ajax_feedback.html">http://vinuthomas.com/code/my-bic/ajax_feedback.html</a></p>
<p>You&#8217;ll see the debug window open up as soon as you submit the form. The debug window gives you information useful while debugging you ajax application.</p>
<p>Source code for this tutorial: <a href="http://vinuthomas.com/code/my-bic/ajax_feedback.zip">ajax_feedback.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/07/11/creating-an-ajax-feedback-form-with-my-bic/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Design Patterns for Web 2.0</title>
		<link>http://blogs.vinuthomas.com/2006/06/29/design-patterns-for-web-20/</link>
		<comments>http://blogs.vinuthomas.com/2006/06/29/design-patterns-for-web-20/#comments</comments>
		<pubDate>Thu, 29 Jun 2006 05:55:24 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[Web Designs]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/06/29/design-patterns-for-web-20/</guid>
		<description><![CDATA[Yahoo&#8217;s UI Blog and Design pattern Library have interesting topics on patterns to follow while designing UI&#8217;s for Web 2.0 applications. In the old web, an action almost always followed a page reload or an intrusive Javascript pop-up, indicating that the action was complete. In the age of Ajax, how do we communicate the action [...]]]></description>
			<content:encoded><![CDATA[<p>Yahoo&#8217;s UI Blog and Design pattern Library have interesting topics on patterns to follow while designing UI&#8217;s for Web 2.0 applications. In the old web, an action almost always followed a page reload or an intrusive Javascript pop-up, indicating that the action was complete. In the age of Ajax, how do we communicate the action completion to the user?<em>Transitions are a powerful way to communicate change in a user interface. Transitions can communicate a change in relationships between elements on a page or a change in an element&#8217;s state. Additionally, when interactions are complex or involve important changes transitions can be used to slow down an interaction allowing the user to &#8220;see what just happened.&#8221; During lengthy processes, transitions can be used to make time seem to pass faster by distracting the user during the waiting time.Â </em></p>
<p><a href="http://developer.yahoo.com/ypatterns/parent.php?pattern=transition">Transition Parent &#8211; Yahoo! Design Pattern Library</a></p>
<p><em>With the widespread acceptance of Ajax (and the resurgence of Flash) new ways of interacting on the web have emerged. In many ways, these interactions are not new. Interactions like drag and drop and inline editing have been mainstream on desktop applications for over 20 years. What is new, though, is the emergence of these idioms on the web.Â </em></p>
<p><a target="_blank" href="http://yuiblog.com/blog/2006/05/09/invitation/">Link: Design Pattern: Invitation</a></p>
<p>Another interesting link on this topic: <a target="_blank" href="http://looksgoodworkswell.blogspot.com/2006/03/mind-hacking-visual-transi_114376913301122246.html">Mind Hacking Visual Transitions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/06/29/design-patterns-for-web-20/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snap &#8211; Ajax powered Search</title>
		<link>http://blogs.vinuthomas.com/2006/06/15/snap-ajax-powered-search/</link>
		<comments>http://blogs.vinuthomas.com/2006/06/15/snap-ajax-powered-search/#comments</comments>
		<pubDate>Thu, 15 Jun 2006 03:36:30 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Tech Stuff]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/06/15/snap-ajax-powered-search/</guid>
		<description><![CDATA[Here&#8217;s a cool new search engine powered by Ajax. They&#8217;ve got Ajax powered &#8220;suggest&#8221; features while you type, you can scroll through your results using the arrow keys on your keyboard, view result pages inline and lots more&#8230;. check out Snap.
&#8220;Snap is a very different way of searching, one we suspect will take a bit [...]]]></description>
			<content:encoded><![CDATA[<p><a class="imagelink" title="Snap Search Engine" href="http://blogs.vinuthomas.com/wp-content/uploads/2006/06/snap_search.jpg" rel="lightbox[157]"><img border="0" align="left" id="image156" alt="Snap Search Engine" src="http://blogs.vinuthomas.com/wp-content/uploads/2006/06/snap_search.thumbnail.jpg" /></a>Here&#8217;s a cool new search engine powered by Ajax. They&#8217;ve got Ajax powered &#8220;suggest&#8221; features while you type, you can scroll through your results using the arrow keys on your keyboard, view result pages inline and lots more&#8230;. check out <a target="_blank" href="http://www.snap.com">Snap</a>.</p>
<p>&#8220;<span class="static_content_text_1"><em>Snap is a very different way of searching, one we suspect will take a bit of getting used to. As you can imagine, we&#8217;ve done a ton of usability testing in developing Snap and here&#8217;s what we&#8217;ve learned: while Snap isn&#8217;t complicated, it is a different way of searching in which a little bit of orientation goes a long way to increasing satisfaction. So, we&#8217;ve tried to help introduce ourselves to you in a number of ways.</em> &#8220;</span></p>
<p>Link: <a target="_blank" href="http://www.snap.com">Snap</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/06/15/snap-ajax-powered-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://blogs.vinuthomas.com/2006/06/08/comet-it%e2%80%99s-ajax-for-%e2%80%9cpush%e2%80%9d/</link>
		<comments>http://blogs.vinuthomas.com/2006/06/08/comet-it%e2%80%99s-ajax-for-%e2%80%9cpush%e2%80%9d/#comments</comments>
		<pubDate>Thu, 08 Jun 2006 13:50:56 +0000</pubDate>
		<dc:creator>vinu</dc:creator>
				<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://blogs.vinuthomas.com/2006/06/08/comet-it%e2%80%99s-ajax-for-%e2%80%9cpush%e2%80%9d/</guid>
		<description><![CDATA[Alex Russell has coined a term for a flavour of Ajax thatâ€™s been getting more attention of late. Comet describes applications where the server keeps pushing &#8211; or streaming &#8211; data to the client, instead of having the browser keep polling the server for fresh content.
Link: Software As Sheâ€™s Developed &#8211; Comet: Itâ€™s Ajax for [...]]]></description>
			<content:encoded><![CDATA[<p>Alex Russell has coined a term for a flavour of Ajax thatâ€™s been getting more attention of late. Comet describes applications where the server keeps pushing &#8211; or streaming &#8211; data to the client, instead of having the browser keep polling the server for fresh content.</p>
<p>Link: <a href="http://softwareas.com/comet-podcast">Software As Sheâ€™s Developed &#8211; Comet: Itâ€™s Ajax for â€œPushâ€? (Podcast)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.vinuthomas.com/2006/06/08/comet-it%e2%80%99s-ajax-for-%e2%80%9cpush%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
