<?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>Noupe &#187; AJAX</title> <atom:link href="http://www.noupe.com/ajax/feed" rel="self" type="application/rss+xml" /><link>http://www.noupe.com</link> <description>Web Designer&#039;s Online Resource</description> <lastBuildDate>Fri, 12 Mar 2010 12:11:15 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.8.6</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <item><title>30 Fresh AJAX Tutorials And Techniques</title><link>http://www.noupe.com/ajax/30-fresh-ajax-tutorials-and-techniques.html</link> <comments>http://www.noupe.com/ajax/30-fresh-ajax-tutorials-and-techniques.html#comments</comments> <pubDate>Mon, 04 Jan 2010 13:33:52 +0000</pubDate> <dc:creator>vitaly</dc:creator> <category><![CDATA[AJAX]]></category> <category><![CDATA[TUTORIAL]]></category> <category><![CDATA[scripts]]></category> <category><![CDATA[tutorials]]></category><guid isPermaLink="false">http://www.noupe.com/?p=38547</guid> <description><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt="" /></a></div></td></tr></table> &nbsp;&nbsp;By Paul Andrew Using AJAX on websites and applications is pretty much taken for granted nowadays. Users expect it. They want to be able to edit a page in-place, they want search queries to be auto-suggested, and they want to [...]]]></description> <content:encoded><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="Advertisement in " border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt=" in "  /></a></div></td></tr></table><p><em>By Paul Andrew</em></p><p>Using <strong>AJAX</strong> on websites and applications is pretty much taken for granted nowadays. Users expect it. They want to be able to edit a page in-place, they want search queries to be auto-suggested, and they want to be able to submit a form without refreshing the page. Why? Because those things make browsing quicker, easier and, more importantly, enjoyable.</p><p>As great as AJAX is, though, it is not for every website or application. Part of the developer&#8217;s job is to know exactly where AJAX (or any technology for that matter) is needed. Too little can lead to user frustration. Too much causes misunderstanding. A balance and some restraints are always needed.</p><p>In this round-up, we have collected <strong>30 fresh AJAX tutorials and techniques</strong>, covering almost every aspect of AJAX development: forms, applications, polls, editing, parsing, visual effects and much more.</p><p><span id="more-38547"></span></p><h3>AJAX Tutorials And Techniques</h3><p><a href="http://tutorialzine.com/2009/09/shopping-cart-php-jquery/">An AJAX-Based Shopping Cart with PHP, CSS and jQuery</a><br /> In this tutorial, you will create an AJAX-driven shopping cart and store all of the products in a MySQL database, using PHP to process the data. jQuery will deliver the AJAX on the page, and with help of the <a href="http://craigsworks.com/projects/simpletip/">simpletip plug-in</a>, you will be able to deliver a high-end interactive check-out process.<br /><a href="http://demo.tutorialzine.com/2009/09/shopping-cart-php-jquery/demo.php">View the demo</a>.</p><p><a href="http://tutorialzine.com/2009/09/shopping-cart-php-jquery/"><img src="http://www.noupe.com/wp-content/uploads/2010/01/ajaxresources1.jpg" width="480" height="231" alt="Ajaxresources1 in "  /></a></p><p><a href="http://blog.themeforest.net/tutorials/creating-an-ajax-web-app-using-the-bitly-api/">Creating an AJAX Web App Using the Bit.ly API</a><br /> Using Twitter’s URL shortener, <a href="bit.ly">bit.ly</a>, and the jQuery library, you will be taken through the process of building an AJAX Web app. This is a great beginner tutorial, giving a detailed introduction to APIs and the basics of PHP and jQuery.<br /> <a href="http://dev-tips.com/demo/bitly/demo.php">View the demo</a>.</p><p><a href="http://blog.themeforest.net/tutorials/creating-an-ajax-web-app-using-the-bitly-api/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources2.jpg" width="480" height="231" alt="Ajaxresources2 in "  /></a></p><p><a href="http://tutorialzine.com/2009/11/twitter-list-ajax-fanpage/">A Twitter List AJAX-Powered Fan Page</a><br /> Twitter recently launched its new &#8220;lists&#8221; feature, which allows you to compile a list of your followers and organize them into categories. Using the newly expanded API (with list-management functionality added), you will learn how to create a widget that flips lists the other way round: this fan widget that goes in the sidebar allows visitors to fill in their Twitter name and join a special fan list from your Twitter account.<br /> <a href="http://demo.tutorialzine.com/2009/11/twitter-list-ajax-fanpage/demo.html">View the demo</a>.</p><p><a href="http://tutorialzine.com/2009/11/twitter-list-ajax-fanpage/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources3.jpg" width="480" height="361" alt="Ajaxresources3 in "  /></a></p><p><a href="http://net.tutsplus.com/videos/screencasts/learn-how-to-ajaxify-comment-forms/">Learn How to AJAXify Comment Forms</a><br /> Learn how to take a simple boring contact form and add some simple animation with an AJAX post request to submit the form to your MySQL database asynchronously.</p><p><a href="http://net.tutsplus.com/videos/screencasts/learn-how-to-ajaxify-comment-forms/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources4.jpg" width="480" height="231" alt="Ajaxresources4 in "  /></a></p><p><a href="http://tutorialzine.com/2009/09/simple-ajax-website-jquery/">A Simple AJAX Website with jQuery</a><br /> Using jQuery, PHP and CSS, you will go through the process of creating a basic AJAX website. The finished product will load pages through AJAX from the PHP back-end and even completely support the browser history (something that is normally difficult to achieve with any AJAX or Flash website).<br /> <a href="http://demo.tutorialzine.com/2009/09/simple-ajax-website-jquery/demo.html">View the demo</a>.</p><p><a href="http://tutorialzine.com/2009/09/simple-ajax-website-jquery/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources5.jpg" width="480" height="231" alt="Ajaxresources5 in "  /></a></p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/create-a-twitter-like-load-more-widget/">Create a Twitter-Like “Load More” Widget</a><br /> In this tut, you will learn the technique&mdash;used by both Twitter and the Apple App Store&mdash;for loading more information. Simply by clicking the link or button, more content will appear, as if by magic.  You will use AJAX, CSS, Javascript, JSON, PHP and HTML to build this widget. This tutorial features both the jQuery and the MooTools versions of the script.<br /> <a href="http://davidwalsh.name/dw-content/load-more.php">View the demo</a>.</p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/create-a-twitter-like-load-more-widget/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources6.jpg" width="480" height="366" alt="Ajaxresources6 in "  /></a></p><p><a href="http://www.noupe.com/ajax/create-a-simple-twitter-app.html">A Simple Twitter App with Ruby on Rails</a><br /> In this three-part tutorial series, you will set up a simple messaging model that holds posted messages. You will also learn how to post a message asynchronously.<br /> <a href="http://www.therailworld.com/posts/18-Create-a-Twitter-App-with-Rails-Demo-Data">View the demo</a>.</p><p><a href="http://www.noupe.com/ajax/create-a-simple-twitter-app.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources7.jpg" width="480" height="231" alt="Ajaxresources7 in "  /></a></p><p><a href="http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/">AJAX Multiple-File-Upload Form Using jQuery</a><br /> With this article, you will learn to develop an AJAXified multiple-file-upload form that uses much less server-side code and has a nice user interface. Thanks to the power of jQuery, the time spent on actual development is substantially reduced.<br /> <a href="http://demo.webdeveloperplus.com/ajax-file-upload/">View the demo</a>.</p><p><a href="http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources8.jpg" width="480" height="231" alt="Ajaxresources8 in "  /></a></p><p><a href="http://lastwebdesigner.com/jquery/how-to-send-a-mail-with-php-ajax-and-jquery-in-facebook-style.html">How to Send Facebook-Style Mail with PHP, AJAX and jQuery</a><br /> The Facebook website is choc full of unique features, especially the system for sending mail and messages. Using PHP, AJAX and jQuery, you can recreate this technique using this step-by-step tutorial.<br /> <a href="http://lastwebdesigner.com/tests/mail-jquery-php-ajax/">View the demo</a>.</p><p><a href="http://lastwebdesigner.com/jquery/how-to-send-a-mail-with-php-ajax-and-jquery-in-facebook-style.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources9.jpg" width="480" height="231" alt="Ajaxresources9 in "  /></a></p><p><a href="http://www.noupe.com/php/how-to-create-your-own-stats.html">How to Create Your Own Stats Program (JavaScript, AJAX, PHP)</a><br /> Chances are, you use an analytics programs such as Google Analytics, Get Clicky or Urchin to track every move and twitch on your website. They all track page views, visits, unique visitors, browsers, IP addresses and much more. But how exactly is this accomplished? Follow this tutorial and learn how to create your own basic Web statistics program using PHP, JavaScript, AJAX and SQLite.<br /> <a href="http://karthik-testing.nfshost.com/web-stats/">View the demo</a>.</p><p><a href="http://www.noupe.com/php/how-to-create-your-own-stats.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources10.jpg" width="480" height="231" alt="Ajaxresources10 in "  /></a></p><p><a href="http://www.problogdesign.com/wordpress/how-to-ajax-post-pagination-in-mootools/">AJAX Post Pagination in MooTools</a><br /> Patiently browsing through the archive of posts on your WordPress website can be frustrating. A fix for this problem would be to use MooTools and AJAX to do the loading.</p><p><a href="http://www.problogdesign.com/wordpress/how-to-ajax-post-pagination-in-mootools/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources11.jpg" width="480" height="231" alt="Ajaxresources11 in "  /></a></p><p><a href="http://papermashup.com/jquery-ajax-delete/">jQuery AJAX delete</a><br /> Being able to remove content with Ajax is useful for any Web designer. Using a few lines of jQuery, you can remove both a DIV and a record from the database with AJAX. In this demo, you’ll see a small red cross to the right of each comment. Clicking the cross will remove the comment&#8217;s DIV, and the slide-up animation allows you to remove the DIV.<br /> <a href="http://papermashup.com/demos/jquery-delete/">View the demo</a>.</p><p><a href="http://papermashup.com/jquery-ajax-delete/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources12.jpg" width="480" height="231" alt="Ajaxresources12 in "  /></a></p><p><a href="http://9lessons.blogspot.com/2009/08/vote-with-jquery-ajax-and-php.html">Voting System with jQuery, AJAX and PHP</a><br /> Dzone offers users the chance to vote up or down on any particular link, giving an indication of how well an article has been received. In this tutorial, you learn how to recreate this unique voting system using jQuery, AJAX and PHP.<br /> <a href="http://9lessons.net63.net/voting.php">View the demo</a>.</p><p><a href="http://9lessons.blogspot.com/2009/08/vote-with-jquery-ajax-and-php.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources14.jpg" width="480" height="231" alt="Ajaxresources14 in "  /></a></p><p><a href="http://net.tutsplus.com/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/">Creating a Dynamic Poll with jQuery and PHP</a><br /> When you combine the neat functionality of PHP and the cleverness of jQuery, you can produce some pretty cool results. In this tutorial, you will create a poll using PHP and XHTML, then use some jQuery AJAX effects to eliminate the need for page refreshing and to give it a nice touch of animation.<br /> <a href="http://nettuts.com/demos/test_poll/">View the demo</a>.</p><p><a href="http://net.tutsplus.com/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources15.jpg" width="480" height="231" alt="Ajaxresources15 in "  /></a></p><p><a href="http://webdeveloperplus.com/wordpress/how-to-ajaxify-wordpress-comment-posting/">AJAXify WordPress Comment Posting</a><br /> Many WordPress plug-ins will AJAXify comments, but how do they do it? In this step-by-step tutorial, you will learn how to enable AJAXed comments with client-side JavaScript comment-form validation for any WordPress blog.<br /> <a href="http://demo.webdeveloperplus.com/wordpress/">View the demo</a>.</p><p><a href="http://webdeveloperplus.com/wordpress/how-to-ajaxify-wordpress-comment-posting/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources16.jpg" width="480" height="231" alt="Ajaxresources16 in "  /></a></p><p><a href="http://webdeveloperplus.com/jquery/create-a-dynamic-scrolling-content-box-using-ajax/">Create a Dynamic Scrolling Content Box Using AJAX</a><br /> If you use Google Reader, then you may have noticed how it shows feed items. After you click on a feed, it loads a few items first, and as you scroll down to view more items, it adds more items dynamically to the list. This tutorial shows you how to create a similar content box that loads content dynamically as the user scrolls to the bottom of the box.<br /> <a href="http://demo.webdeveloperplus.com/dynamic-scrollbox/">View the demo</a>.</p><p><a href="http://webdeveloperplus.com/jquery/create-a-dynamic-scrolling-content-box-using-ajax/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources17.jpg" width="480" height="231" alt="Ajaxresources17 in "  /></a></p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/create-an-in-place-editing-system/">Create an In-Place Editing System</a><br /> Making users click through multiple pages just to edit a single field is annoying. This tutorial shows you how to create an in-place editing system, as found on popular websites such as Flickr and then take things further with AJAX.<br /> <a href="http://nettuts.s3.amazonaws.com/443_editing/demo/code.html">View the demo</a>.</p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/create-an-in-place-editing-system/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources18.jpg" width="480" height="231" alt="Ajaxresources18 in "  /></a></p><p><a href="http://net.tutsplus.com/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/">Submit A Form Without Page Refresh using jQuery</a><br /> This article outlines a great way to use jQuery and AJAX to enhance the user experience, not just by validating the form but by submitting the contact form without having to refresh the page.<br /> <a href="http://nettuts.com/demos/contactform/">View the demo</a>.</p><p><a href="http://net.tutsplus.com/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources19.jpg" width="480" height="231" alt="Ajaxresources19 in "  /></a></p><p><a href="http://www.vagrantradio.com/2009/10/how-to-parse-xml-using-jquery-and-ajax.html">How To Parse XML Using jQuery and Ajax</a><br /> In this tutorial you will learn how to parse or process an XML document and display the data on a page in HTML. This process can be used to filter raw RSS feeds, set up a cool site map on your blog or even lay the groundwork for your own auto-complete search.<br /> <a href="http://www.vagrantradio.com/demos/jquery_xml/index.html">View the demo</a>.</p><p><a href="http://www.vagrantradio.com/2009/10/how-to-parse-xml-using-jquery-and-ajax.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources20.jpg" width="480" height="231" alt="Ajaxresources20 in "  /></a></p><p><a href="http://davidwalsh.name/cache-ajax">Caching AJAX Results in Javascript</a><br /> AJAX requests are usually faster than regular page loads and allow for a wealth of dynamism within the page. Unfortunately, many people do not properly cache request information when they can. The author shows you his improved method for caching AJAX requests.</p><p><a href="http://davidwalsh.name/cache-ajax"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources21.jpg" width="480" height="231" alt="Ajaxresources21 in "  /></a></p><p><a href="http://www.vagrantradio.com/2009/09/how-to-create-an-ajax-file-uploader.html">How to Create an AJAX File Uploader</a><br /> The application you will build in this tut uses jQuery&#8217;s versatility to allow multiple file uploads without a page refresh or redirection, complete with front- and back-end validation to prevent unwanted files from being uploaded to your server.<br /> <a href="http://www.vagrantradio.com/demos/file_uploader/index.html">View the demo</a>.</p><p><a href="http://www.vagrantradio.com/2009/09/how-to-create-an-ajax-file-uploader.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources22.jpg" width="480" height="231" alt="Ajaxresources22 in "  /></a></p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/">How to Create a Simple Web-Based Chat Application</a><br /> The multiple-user Web-based chat application that you will build in this tutorial includes a log-in and log-out system, with AJAX-style features. The finished product would be perfect for a live support system for your website, as seen on the Vodafone and T-Mobile websites.</p><p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources23.jpg" width="480" height="231" alt="Ajaxresources23 in "  /></a></p><p><a href="http://9lessons.blogspot.com/2009/06/autosuggestion-with-jquery-ajax-and-php.html">Facebook-like Auto-Suggestion with jQuery, AJAX and PHP</a><br /> This article shows you how to recreate the unique auto-suggestion search feature of Facebook using jQuery, PHP and, of course, AJAX.<br /> <a href="http://9lessons.net63.net/auto.htm">View the demo</a>.</p><p><a href="http://9lessons.blogspot.com/2009/06/autosuggestion-with-jquery-ajax-and-php.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources25.jpg" width="480" height="231" alt="Ajaxresources25 in "  /></a></p><p><a href="http://net.tutsplus.com/articles/web-roundups/20-more-excellent-ajax-effects-you-should-know/">20 More Excellent AJAX Effects You Should Know</a><br /> This article rounds up 20 relatively easy AJAX effects and techniques that can be used to spice up any page.</p><p><a href="http://net.tutsplus.com/articles/web-roundups/20-more-excellent-ajax-effects-you-should-know/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources26.jpg" width="480" height="231" alt="Ajaxresources26 in "  /></a></p><p><a href="http://davidwalsh.name/text-selection-ajax">Record Text Selections Using MooTools or jQuery AJAX</a><br /> This post demonstrates a useful technique for keeping track of what text users are highlighting and copying on a given Web page. It is helpful because it gives you an indication of what visitors really want from your website.</p><p><a href="http://davidwalsh.name/text-selection-ajax"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources27.jpg" width="480" height="231" alt="Ajaxresources27 in "  /></a></p><p><a href="http://www.ibm.com/developerworks/library/wa-aj-dynamic/?S_TACT=105AGY30&#038;S_CMP=ajaxlp">Automatically Update a Web Page with Dynamic Elements</a><br /> You may know how to hide and display optional JavaServer Faces (JSF) components using JavaScript and CSS. To do this, you would first identify all JSF components and write them into JSF pages. But that is impossible when you are developing a Web page that contains dynamic elements that are unknown until runtime. With this article, learn how you can clear old UI components while automatically updating the dynamic elements of a Web page, as well as use Java code to add new elements and put them in their proper spot on a Web page. You&#8217;ll also learn how to bind different event handlers to different dynamic elements of a Web page, how to register a listener listening to changes of server-side data to invoke a page refresh, and how to use AJAX techniques to refresh only the dynamic parts of the Web page.</p><p><a href="http://www.ibm.com/developerworks/library/wa-aj-dynamic/?S_TACT=105AGY30&#038;S_CMP=ajaxlp"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources28.jpg" width="480" height="231" alt="Ajaxresources28 in "  /></a></p><p><a href="http://www.ibm.com/developerworks/library/wa-aj-presentation1/">Build a Web Presentation Application using AJAX</a><br /> How does Google Docs have such amazing functionality? It leverages Web 2.0 technologies, which provide robust functionality with relatively simple code. In this article, learn how to build a Web application to create slideshow presentations using AJAX.</p><p><a href="http://www.ibm.com/developerworks/library/wa-aj-presentation1/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources29.jpg" width="480" height="231" alt="Ajaxresources29 in "  /></a></p><p><a href="http://dev.base86.com/solo/51/javascript_datepicker_calender_eightysix_released.html">Calendar Eightysix</a><br /> Calendar Eightysix is an unobtrusive, developer-friendly JavaScript calendar and date-picker that offers a better user experience for date-related functionality. It is highly customizable and offers unique and quick navigation by jumping back and forth between months, years and decades without drop-down boxes.<br /> <a href="http://dev.base86.com/scripts/datepicker_calendar_eightysix.html">View the demo</a>.</p><p><a href="http://dev.base86.com/solo/51/javascript_datepicker_calender_eightysix_released.html"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources30.jpg" width="480" height="231" alt="Ajaxresources30 in "  /></a></p><p><a href="http://conceptlogic.com/jcart/">jCart: AJAX/PHP Shopping Cart</a><br /> jCart is a customizable jQuery plug-in that offers a simple e-commerce solution by handling visitor input without reloading the page.</p><p><a href="http://conceptlogic.com/jcart/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources31.jpg" width="480" height="231" alt="Ajaxresources31 in "  /></a></p><p><a href="http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin">AJAX Fancy Captcha</a><br /> The Fancy Captcha jQuery plug-in is an intuitive and fresh way to complete those &#8220;verify humanity&#8221; tasks, offering reasonable protection against unwanted guests, namely bots and spammers. It works by asking you to verify yourself simply by dragging and dropping an item into a circle.</p><p><a href="http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/ajaxresources32.jpg" width="480" height="284" alt="Ajaxresources32 in "  /></a></p><h4>About the Author</h4><p><em>Paul Andrew is a freelance Web designer. He is chief admin for <a href="http://speckyboy.com/">Speckyboy &#8211; Design Magazine</a>, a Web design, Web development and graphic design resource blog. Follow him on Twitter here: <a href="http://twitter.com/speckyboy">twitter.com/speckyboy</a>.</em></p><p><em>(al)</em></p> ]]></content:encoded> <wfw:commentRss>http://www.noupe.com/ajax/30-fresh-ajax-tutorials-and-techniques.html/feed</wfw:commentRss> <slash:comments>46</slash:comments> </item> <item><title>Free Slideshow, Gallery And Lightboxes Scripts</title><link>http://www.noupe.com/ajax/free-slideshow-gallery-and-lightboxes-scripts.html</link> <comments>http://www.noupe.com/ajax/free-slideshow-gallery-and-lightboxes-scripts.html#comments</comments> <pubDate>Wed, 14 Oct 2009 10:26:08 +0000</pubDate> <dc:creator>Guest Posting</dc:creator> <category><![CDATA[AJAX]]></category><guid isPermaLink="false">http://www.noupe.com/?p=26713</guid> <description><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt="" /></a></div></td></tr></table> &nbsp;&nbsp;by Obaid ur Rehman For Web design projects, you may find yourself sometimes scrounging around for a simple yet useful image gallery and slideshow. But imagine having a huge collection of AJAX, JavaScript, Lightbox, CSS and Flash-based image galleries at [...]]]></description> <content:encoded><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="Advertisement in " border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt=" in "  /></a></div></td></tr></table><p><em>by Obaid ur Rehman</em></p><p>For Web design projects, you may find yourself sometimes scrounging around for a simple yet useful image gallery and slideshow. But imagine having a huge collection of AJAX, JavaScript, Lightbox, CSS and Flash-based image galleries at your fingertips. Hopefully, this post will do the trick and provide all the resources you might need.</p><p><span id="more-26713"></span></p><h3>Free Slideshows And Lightboxes Scripts</h3><p><a href="http://www.no3dfx.com/polaroid/">Polaroid Gallery v.1.01</a><br /> <a href="http://www.no3dfx.com/polaroid/"><img src="http://www.noupe.com/wp-content/uploads/2009/10/24.jpg" alt="24 in " width="500" height="501" /></a><br /> Polaroid Gallery is a free open-source Flash gallery developed by Christopher Einarsrud.</p><p><a href="http://www.fwzone.net/go?11360">Active Slideshow Pro</a><br /> <a href="http://www.fwzone.net/go?11360"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/1.jpg" alt="1 in " width="500" height="416" /></a><br /> Create dazzling multimedia presentations, slideshows and banners with Active Slideshow Pro. This extension builds on the success of Active Slideshow and gives you new spectacular effects and optimal control over your slides, texts, transitions and sounds.</p><p><a href="http://www.paulvanroekel.nl/picasa/piclens/index.asp">PicLens Slideshow</a><br /> <a href="http://www.paulvanroekel.nl/picasa/piclens/index.asp"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/2.jpg" alt="2 in " width="500" height="340" /></a><br /> Take your favourite images full-screen. This template is based on PicLens and combines the power of PicLens and Media RSS technology to give you an easy way to add immersive multimedia slideshows to your own website. The exported Piclens gallery can also easily be used as a complete Web page.</p><p><a href="http://www.plogger.org/">Plogger</a><br /> <a href="http://www.plogger.org/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/3.jpg" alt="3 in " width="500" height="381" /></a><br /> Plogger is the next generation in open-source photo gallery systems. A Web application not bloated with superfluous features or complicated configuration settings. Plogger is a simple yet powerful tool, everything you need to share your images with the world.</p><p><a href="http://www.shadowbox-js.com/">Shadowbox</a><br /> <a href="http://www.shadowbox-js.com/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/4.jpg" alt="4 in " width="500" height="340" /></a><br /> Shadowbox is an online media viewer application that supports all of the Web&#8217;s most popular media publishing formats. Shadowbox is written entirely in JavaScript and CSS and is highly customizable.</p><p><a href="http://www.phatfusion.net/slideshow/">PhatFusion Slideshow</a><br /> <a href="http://www.phatfusion.net/slideshow/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/5.jpg" alt="5 in " width="500" height="565" /></a><br /> Transition between images.</p><p><a href="http://www.twospy.com/galleriffic/">Galleriffic</a><br /> <a href="http://www.twospy.com/galleriffic/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/6.jpg" alt="6 in " width="500" height="256" /></a><br /> Galleriffic was inspired by Mike Alsup&#8217;s Cycle plug-in, but with performance in mind for delivering a high volume of photos.</p><p><a href="http://www.efectorelativo.net/laboratory/noobSlide/">NoobSlide</a><br /> <a href="http://www.efectorelativo.net/laboratory/noobSlide/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/7.jpg" alt="7 in " width="500" height="278" /></a></p><p><a href="http://fancybox.net/">Fancybox</a><br /> <a href="http://fancybox.net/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/8.jpg" alt="8 in " width="500" height="262" /></a><br /> FancyBox is a tool for displaying images, HTML content and multimedia in a Mac-style Lightbox that floats over top the Web page.</p><p><a href="http://scriptandstyle.com/automatically-generate-a-photo-gallery-from-a-directory-of-images">Auto Generating Gallery</a><br /> <a href="http://scriptandstyle.com/automatically-generate-a-photo-gallery-from-a-directory-of-images"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/9.jpg" alt="9 in " width="500" height="341" /></a><br /> If you are creating a fairly small gallery, hand-coding a grid of thumbnails will probably do. But for larger galleries or doing a lot of adding, editing and swapping of photos, you will probably want a better solution. And that solution is: an automatically generating photo gallery!</p><p><a href="http://www.leigeber.com/2008/05/ajax-image-gallery-slideshow/">Dynamic Image Gallery and Slideshow</a><br /> <a href="http://www.leigeber.com/2008/05/ajax-image-gallery-slideshow/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/10.jpg" alt="10 in " width="500" height="380" /></a></p><p><a href="http://devthought.com/blog/projects-news/2008/06/barackslideshow-an-elegant-lightweight-slideshow-script/">Barack Slideshow</a><br /> <a href="http://devthought.com/blog/projects-news/2008/06/barackslideshow-an-elegant-lightweight-slideshow-script/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/11.jpg" alt="11 in " width="500" height="230" /></a><br /> Pretty much everyone has seen Barack Obama’s website by now, which is clearly one of the most attractive ones done by a presidential candidate. Not only is it an example of state-of-the-art design, but it’s also nice to navigate and interact with.</p><p><a href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html?lang=en">jQuery Multimedia Portfolio</a><br /> <a href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html?lang=en"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/12.jpg" alt="12 in " width="500" height="359" /></a><br /> This plug-in for jQuery automatically detects the extension of each media file and applies the right player.</p><p><a href="http://www.e2interactive.com/e2_photo_gallery/">(E)2 Photo Gallery</a><br /> <a href="http://www.e2interactive.com/e2_photo_gallery/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/13.jpg" alt="13 in " width="500" height="223" /></a><br /> (E)2 Photo Gallery is a open-source gallery built with MooTools JavaScript Library in a compact, modular and object-oriented framework. Tell the (E)2 Photo Gallery what folder your images are stored in, and it will automatically load them using PHP.</p><p><a href="http://www.flickrshow.com/">Flickrshow </a><br /> <a href="http://www.flickrshow.com/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/14.jpg" alt="14 in " width="500" height="366" /></a><br /> Flickrshow is a lightweight, cross-browser JavaScript slideshow, giving you an easy way to display Flickr images on your website.</p><p><a href="http://www.deensoft.com/lab/protoflow/">ProtoFlow</a><br /> <a href="http://www.deensoft.com/lab/protoflow/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/15.jpg" alt="15 in " width="500" height="248" /></a><br /> ProtoFlow is a coverflow effect written in JavaScript. It uses Prototype and Scriptaculous to do the bulk of the work, and it uses Reflection.js to do all of the image reflection stuff.</p><p><a href="http://www.paulvanroekel.nl/picasa/Flip/index.asp">Flip 3D Flash Slideshow</a><br /> <a href="http://www.paulvanroekel.nl/picasa/Flip/index.asp"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/16.jpg" alt="16 in " width="500" height="335" /></a><br /> A very nice Flash-based template. Each image that flips to the next casts a subtle reflection on the ground. The size of the images can be easily adjusted by editing the template files. And adding a background image is a piece of cake.</p><p><a href="http://imago.codeboje.de/">Imago</a><br /> <a href="http://imago.codeboje.de/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/17.jpg" alt="17 in " width="500" height="244" /></a><br /> Imago is an AJAX image gallery focused on simplicity and ease of use. It&#8217;s in plain JavaScript and builds on the mature AJAX library MooTools. No server-side scripting is required! Neither is Flash. Whether your photos are on Flickr, SmugMug or your own server, Imago can show them.</p><p><a href="http://87.230.15.86/~dado/devel/mootools/thumbnoo/#examples">Thumbnoo</a><br /> <a href="http://87.230.15.86/~dado/devel/mootools/thumbnoo/#examples"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/18.jpg" alt="18 in " width="500" height="374" /></a></p><p><a href="http://www.db798.com/pictobrowser/">PictoBrowser</a><br /> <a href="http://www.db798.com/pictobrowser/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/19.jpg" alt="19 in " width="500" height="490" /></a><br /> A free Web application that displays Flickr and Picasa images on websites and blogs.</p><p><a href="http://www.getintothis.com/blog/2006/10/12/image-gallery-using-jquery-interface-reflections/">jQuery Gallery</a><br /> <a href="http://www.getintothis.com/blog/2006/10/12/image-gallery-using-jquery-interface-reflections/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/20.jpg" alt="20 in " width="500" height="602" /></a><br /> Here is an image gallery with smooth transitions, thumbnails and pretty reflections.</p><p><a href="http://www.simpleviewer.net/postcardviewer/">PostcardViewer</a><br /> <a href="http://www.simpleviewer.net/postcardviewer/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/21.jpg" alt="21 in " width="500" height="393" /></a><br /> PostcardViewer is a free customizable Flash image viewer. The interface looks like a set of postcards shuffled on a table.</p><p><a href="http://labs.adobe.com/technologies/spry/home.html">Spry</a><br /> <a href="http://labs.adobe.com/technologies/spry/home.html"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/22.jpg" alt="22 in " width="500" height="346" /></a><br /> Spry is a JavaScript-based framework that enables the rapid development of AJAX-powered Web pages. Not a JavaScript guru? No problem. Spry is designed to feel like an extension of HTML and CSS, so anyone with basic Web production skills can create a next-generation Web experience by adding the power of AJAX.</p><p><a href="http://www.flashmo.com/preview/flashmo_122_3d_curve_gallery">3D Curve Photo Gallery</a><br /> <a href="http://www.flashmo.com/preview/flashmo_122_3d_curve_gallery"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/23.jpg" alt="23 in " width="500" height="272" /></a></p><p><a href="http://nicora.net/projects/photoViewer/index.cfm/home">PhotoViewer</a><br /> <a href="http://nicora.net/projects/photoViewer/index.cfm/home"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/25.jpg" alt="25 in " width="500" height="368" /></a></p><p><a href="http://www.moopix.org/">Moopix</a><br /> <a href="http://www.moopix.org/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/26.jpg" alt="26 in " width="500" height="333" /></a></p><p><a href="http://slideshowpro.net/">Slideshowpro</a><br /> <a href="http://slideshowpro.net/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/27.jpg" alt="27 in " width="500" height="306" /></a></p><p><a href="http://www.paulvanroekel.nl/picasa/lightbox/index.asp">Lightbox Photo Gallery and Slideshow for Picasa</a><br /> <a href="http://www.paulvanroekel.nl/picasa/lightbox/index.asp"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/28.jpg" alt="28 in " width="500" height="356" /></a><br /> This template uses the excellent Lightbox JavaScript by Lakesh Dakar.</p><p><a href="http://vistaphotogallery.com/">Vista photo gallery</a><br /> <a href="http://vistaphotogallery.com/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/29.jpg" alt="29 in " width="500" height="373" /></a><br /> Vista Photo Gallery is a photo album builder that allows you to create and publish rich, interactive photo galleries for your website.</p><p><a href="http://tools.uvumi.com/gallery.html">UvumiTools Gallery Plugin</a><br /> <a href="http://tools.uvumi.com/gallery.html"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/30.jpg" alt="30 in " width="500" height="269" /></a><br /> The UvumiTools Gallery allows you to display fancy photo galleries on your website without requiring you to be a master programmer, thanks to the powerful MooTools JavaScript framework. Just include a couple JavaScript and CSS files.</p><p><a href="http://www.webdesignerwall.com/tutorials/parallax-gallery/">Parallax Gallery</a><br /> <a href="http://www.webdesignerwall.com/tutorials/parallax-gallery/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/31.jpg" alt="31 in " width="500" height="321" /></a></p><p><a href="http://www.simpleviewer.net/tiltviewer/">TiltViewer</a><br /> <a href="http://www.simpleviewer.net/tiltviewer/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/32.jpg" alt="32 in " width="500" height="724" /></a><br /> TiltViewer is a free customizable 3-D Flash image viewing application.</p><p><a href="http://cssglobe.com/post/3783/jquery-plugin-easy-image-or-content-slider">jQuery plugin &#8211; Easy Image or Content Slider</a><br /> <a href="http://cssglobe.com/post/3783/jquery-plugin-easy-image-or-content-slider"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/33.jpg" alt="33 in " width="500" height="190" /></a></p><p><a href="http://www.nickstakenburg.com/projects/lightview/">Lightview</a><br /> <a href="http://www.nickstakenburg.com/projects/lightview/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/34.jpg" alt="34 in " width="500" height="428" /></a></p><p><a href="http://devkick.com/lab/galleria/">DevKick Galleria</a><br /> <a href="http://devkick.com/lab/galleria/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/35.jpg" alt="35 in " width="500" height="398" /></a><br /> Galleria is a JavaScript image gallery written in jQuery. It loads images one by one from an unordered list and displays thumbnails when each image is loaded. It can create thumbnails, scaled or unscaled, centered and cropped, inside a fixed thumbnail box defined by CSS.</p><p><a href="http://www.puidokas.com/portfolio/frogjs/">FrogJS Javascript Gallery</a><br /> <a href="http://www.puidokas.com/portfolio/frogjs/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/36.jpg" alt="36 in " width="500" height="185" /></a><br /> FrogJS is a simple unobtrusive JavaScript gallery. It’s not a replacement for other thumbnail galleries such as Lightbox JS, but is a different way of showcasing galleries. It is best for page-by-page galleries, such as photo stories.</p><p><a href="http://www.openstudio.fr/jQuery-virtual-tour.html?lang=en">jQuery virtual tour</a><br /> <a href="http://www.openstudio.fr/jQuery-virtual-tour.html?lang=en"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/37.jpg" alt="37 in " width="500" height="692" /></a></p><p><a href="http://css-tricks.com/creating-a-slick-auto-playing-featured-content-slider/">Featured Content Slider</a><br /> <a href="http://css-tricks.com/creating-a-slick-auto-playing-featured-content-slider/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/38.jpg" alt="38 in " width="500" height="404" /></a></p><p><a href="http://www.flashnifties.com/">Flashnifties</a><br /> <a href="http://www.flashnifties.com/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/39.jpg" alt="39 in " width="500" height="373" /></a><br /> Flash image gallery, video gallery, MP3 music player, updatable Flash website with advanced navigation&#8230; all in one!</p><p><a href="http://ptflickrgallery.sourceforge.net/web/index.html">JQuery flickrGallery</a><br /> <a href="http://ptflickrgallery.sourceforge.net/web/index.html"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/40.jpg" alt="40 in " width="500" height="393" /></a></p><p><a href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/">prettyPhoto</a><br /> <a href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/41.jpg" alt="41 in " width="500" height="520" /></a><br /> prettyPhoto is a jQuery-based Lightbox clone. It supports not only images but video, Flash, YouTube and iFrames. It&#8217;s a full-blown media Lightbox.</p><p><a href="http://www.paulvanroekel.nl/picasa/flashpageflip/index.asp">Flash Page Flip Photo Gallery template for Picasa</a><br /> <a href="http://www.paulvanroekel.nl/picasa/flashpageflip/index.asp"><img src="http://media2.smashingmagazine.com/images/slideshow-lightbox-scripts/42.jpg" alt="42 in " width="500" height="187" /></a></p><p><em>(al)</em></p> ]]></content:encoded> <wfw:commentRss>http://www.noupe.com/ajax/free-slideshow-gallery-and-lightboxes-scripts.html/feed</wfw:commentRss> <slash:comments>61</slash:comments> </item> <item><title>A Simple Twitter App with Ruby on Rails &#8211; Messages With Ajax</title><link>http://www.noupe.com/ajax/create-a-simple-twitter-app.html</link> <comments>http://www.noupe.com/ajax/create-a-simple-twitter-app.html#comments</comments> <pubDate>Tue, 23 Jun 2009 21:01:11 +0000</pubDate> <dc:creator>Editorial</dc:creator> <category><![CDATA[AJAX]]></category> <category><![CDATA[RoR]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[twitter]]></category><guid isPermaLink="false">http://www.noupe.com/?p=14323</guid> <description><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt="" /></a></div></td></tr></table> &nbsp;&nbsp;Ruby on Rails is a web application framework that promotes rapid development.  Clients&#8217; demands are ever increasing yet they still expect the same quality of output. Frameworks, like Rails, help to achieve this; why?&#8230; here are some [...]]]></description> <content:encoded><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="Advertisement in " border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt=" in "  /></a></div></td></tr></table><p>Ruby on Rails is a web application framework that promotes rapid development.  Clients&#8217; demands are ever increasing yet they still expect the same quality of output.</p><p> Frameworks, like Rails, help to achieve this; why?&#8230; here are some of the reasons:</p><ul class="post"><li>The <strong>second part </strong>of this tutorial: <a href="http://www.noupe.com/ror/a-simple-twitter-app-with-ruby-on-rails-user-authentication.html">A Simple Twitter App with Ruby on Rails – User Authentication</a></li><li>The <strong>third part </strong>of this tutorial: <a href="http://www.noupe.com/ror/a-simple-twitter-app-with-ruby-on-rails-building-friendships.html"> A Simple Twitter App with Ruby on Rails – Building Friendships</a></li></ul><hr/><span id="more-14323"></span></p><ul class="post"><li><strong>Convention over Configuration (CoC): </strong><br /><hr/>This is used to reduce the amount of up-front configuartion.  The idea is; if you abide by certain coding conventions, you will have little, to none, configuration to do.</li><li><strong>Object-Relational Mapping (ORM):</strong><br /><hr/>ORM reducing coupling to the database.  This abstraction allows you changed the DBMS provider with little trouble.</li><li><strong>Structured Code:</strong><br /><hr/>The MVC pattern forces you to organise your code in a clean, structured way.  This results in more maintainable code.</li><li><strong>Plugins:</strong><br /><hr/>Plugins save you from re-inventing the wheel every time you want to add functionality to your app.  For instance, making you web app capable of performing searches can be easily added with the acts_as_ferret plugin.  There are many more plugins!</li></ul><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/twitterblog.jpg" alt="Twitterblog in "  /></p><h3 class="title">Who is this Tutorial for?</h3><p>This tutorial is for people who have learnt the basics of Rails and want to take things to the next level.  This tutorial is not a beginners guide for getting started with Rails.  If you are just starting out with Rails I suggest this <a href="http://sixrevisions.com/web-development/how-to-create-a-blog-from-scratch-using-ruby-on-rails/">article from Six Revisions</a>.</p><h3 class="title">What this Tutorial Covers</h3><p>In the first part of this three part series, we cover setting up a simple message model, which will hold the messages posted.  Further to this, we will learn how to post a message asynchronously, using AJAX.</p><p style="background-color:#F0EEE6;<br /> border:1px solid #E7E5DD; padding:20px" class="img"><a target="_blank" href="http://www.therailworld.com/posts/18-Create-a-Twitter-App-with-Rails-Demo-Data" style="border:none">View Demo of Twitter App with Ruby on Rails</a></p><h3 class="title">Basic Application Design</h3><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/webdesign.jpg" alt="Webdesign in "  /></p><p>Ok, so you&#8217;ve decided to create a &#8220;twitter&#8221; style micro-blog using Ruby on Rails.  First, we need to think about our basic requirements and from this we can model our application.</p><p>There are many ways that this can be done, but we will use a simple technique in which you jot down a few paragraphs about how and what the application is expected to do then highlight the nouns.  So, lets try it.</p><p><i>My web app should work in a similar way to twitter. <b>Users</b> should be able to register with the site and create short <b>posts</b>.  Users should be able to follow other users.  Each user should be able to see their own posts plus the users they are following.</i></p><p>Note that I&#8217;ve been selective in what nouns I&#8217;ve highlighted.  You only really need to take notice of the nouns which you feel will need to store data to the database.</p><p>I know there is more to twitter than this, but lets leave it simple.  As you can see the &#8220;nouns&#8221;, which will need to store data to the database are &#8220;posts&#8221; and &#8220;users&#8221;.  So we require two models:</p><p><b>In the first part of the tutorial, we are going to deal with posts only.</b></p><ul><li>Post</li><li>User</li></ul><h3 class="title">Creating the Project Files</h3><p>Before we do anything we need to create a project for our twitter web app.</p><pre name="code" class="javascript">
  > rails twitter -d mysql
</pre><p>As you can see, I will be using MySQL as the DBMS, however, feel free to use whatever database you want.</p><p>Open the database.yml file in the config folder and modify the password as required.  An example is shown below.</p><pre name="code" class="javascript">
development:
  adapter: mysql
  encoding: utf8
  database: twittest_development
  pool: 5
  username: root
  password: yourpassword
  host: localhost
</pre><p>Now, create the database with the &#8220;rake&#8221; command.</p><pre name="code" class="javascript">
  > rake db:create
</pre><h3 class="title">Implementing the basic Message Model</h3><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/messages.jpg" alt="Messages in "  /></p><p>So let&#8217;s go right ahead and generate the &#8220;Post&#8221; model and migrate it.</p><pre name="code" class="javascript">
  > ruby script/generate model post message:text
  > rake db:migrate
</pre><h3 class="title">Controller</h3</p><p>Now, let&#8217;s create a controller for the post model.</p><pre name="code" class="javascript">
  > ruby script/generate controller posts
</pre><p>We need to set up some methods for interacting with the model.   Edit your &#8220;posts_controller.rb&#8221; file and add the following methods:</p><pre name="code" class="javascript">
class PostsController &lt; ApplicationController
  def index
    @posts = Post.all(:order => "created_at DESC")
    respond_to do |format|
      format.html
    end
  end

  def create
    @post = Post.create(:message => params[:message])
    respond_to do |format|
      if @post.save
        format.html { redirect_to posts_path }
      else
        flash[:notice] = "Message failed to save."
        format.html { redirect_to posts_path }
      end
    end
  end
end
</pre><p>We only need two methods, &#8220;index&#8221; and &#8220;create&#8221;.  The index method creates an instance variable containing all the posts in descending order.  The create method is used to create a new post.</p><h3 class="title">Views</h3><p>Let&#8217;s create the &#8220;index&#8221; view.  First, we&#8217;ll create a partial for posts.  Create a file called &#8220;_post.html.erb&#8221; in the views/posts folder and add the code below.</p><pre name="code" class="javascript">
&lt;p&gt;&lt;b&gt;Posted &lt;%= time_ago_in_words(post.created_at) %&gt; ago&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;%= post.message %&gt;&lt;/p&gt;
</pre><p>The index view is now very simple.  Create a file called &#8220;index.html.erb&#8221; in the views/posts folder and add the code below.</p><pre name="code" class="javascript">
&lt;%= render :partial =&gt; @posts %&gt;
</pre><h3 class="title">Create some Posts</h3><p>Open a console session and create a few new messages, as shown below.</p><pre name="code" class="javascript">
  > ruby script/console
  Loading development environment (Rails 2.3.2)
  >> Post.create!(:message =&gt; "My first post" )
  >> Post.create!(:message =&gt; "Post number two!" )
</pre><h3 class="title">Create a Form for Posts</h3><p>Obviously you&#8217;re not going to get the user to use the console to create messages.  So, our next task is to inject some functionality into our web app to allow the user to create messages.  Twitter has an input box above the indexed messages, which is used for submitting a new message;  We will keep our web app the same.</p><p>First, we will create a partial for the form, then we will render that partial at the top of the index view.  Create a file called &#8220;_message_form.html.erb&#8221; in the posts view folder and add the following code:</p><pre name="code" class="javascript">
&lt;% form_tag(:controller =&gt; "posts", :action =&gt; "create") do %&gt;
  &lt;%= label_tag(:message, "What are you doing?") %>&lt;br /&gt;
  &lt;%= text_area_tag(:message, nil, :size => "44x6") %>&lt;br /&gt;
  &lt;%= submit_tag("Update") %&gt;
&lt;% end %&gt;
</pre><p>Now, we need to modify the index view to render this partial at the top.  Open the index.html.erb file and modify the code as follows:</p><pre name="code" class="javascript">
<b><%= render :partial => "message_form" %></b>
<%= render :partial => @posts %>
</pre><p>For this to work we need to make one last modification.  Open the route.rb file and map a new &#8220;posts&#8221; resource, as shown below.  (Note: the comments from this file have been removed).</p><pre name="code" class="javascript">
ActionController::Routing::Routes.draw do |map|
  map.resources :posts
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end
</pre><p>This creates a few named routes.  If you look back to the &#8220;create&#8221; method in the posts controller, you&#8217;ll see that we make use of the posts_path named route; Defining the posts resource makes this named route available.</p><p>So, lets fire up the web server and a see how things look.</p><pre name="code" class="javascript">
  > ruby script/server
</pre><p>Now open a browser and go to http://localhost:3000/posts.  You should see a screen, as shown below.</p><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/twitter1.jpg" alt="Twitter1 in "  /></p><h3 class="title">Adding some AJAX</h3><p>AJAX allows you to make asynchronous requests to the server using JavaScript.  We will make use of AJAX to make the posting a message a bit smoother.</p><p>When the user clicks on the &#8220;Update&#8221; button, we want the message to update without refreshing the browser.  We have a few things to do to add AJAX functionality.  First, lets change the &#8220;create&#8221; method in the posts controller:</p><pre name="code" class="javascript">
  def create
    @post = Post.create(:message => params[:message])
    respond_to do |format|
      if @post.save
        format.html { redirect_to posts_path }
        format.js
      else
        flash[:notice] = "Message failed to save."
        format.html { redirect_to posts_path }
      end
    end
  end
</pre><p>The only change here is the &#8220;format.js&#8221; code, allowing the create method to respond to JavaScript.  Next, we need to create a posts layout file.  In the views/layout folder create a file called &#8220;posts.html.erb&#8221; and add the following code:</p><pre name="code" class="javascript">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
&lt;head&gt;
  &lt;%= javascript_include_tag :all %&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id="content"&gt;
    &lt;%= yield %&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre><p>The main purpose of this is to make use of the &#8220;javascript_include_tag&#8221; call, which includes the relevant JavaScript files for AJAX and some visual effects.  Next, we need to make a small addition to the index view (&#8221;index.html.erb&#8221;).</p><pre name="code" class="javascript">
&lt;%= render :partial =&gt; "message_form" %&gt;
<b>&lt;div id="posts"&gt;</b>
  &lt;%= render :partial =&gt; @posts %&gt;
<b>&lt;/div&gt;</b>
</pre><p>As you can see all we have added is a div block surrounding the posts partial.  This will be used later when we are specifying where the AJAX response should be placed.  Nearly there!  Now we will add a div_for block to our post partial (&#8221;_post.html.erb&#8221;).</p><pre name="code" class="javascript">
&lt;% div_for post do %&gt;
  &lt;p&gt;&lt;b&gt;Posted &lt;%= time_ago_in_words(post.created_at) %&gt; ago&lt;/b&gt;&lt;/p&gt;
  &lt;p&gt;&lt;%= post.message %&gt;&lt;/p&gt;
&lt;% end %&gt;
</pre><p>Edit the &#8220;_message_form.html.erb&#8221; partial and change the form_tag call to form_remote_tag as show in the code extract below:</p><pre name="code" class="javascript">
&lt;% form_remote_tag(:controller =&gt; "posts", :action =&gt; "create") do %&gt;
</pre><p>The div_for operation create a div block with a unique id, this is especially useful when looping through several records.  Finally, we need to create the rjs template.  To do this, create a file called &#8220;create.js.rjs&#8221; in the views/posts folder and add the following code.</p><pre name="code" class="javascript">
page.insert_html :top, :posts, :partial => @post
page[@post].visual_effect :highlight
</pre><p>The first line specifies that a new post partial will be rendered at the top of the posts div when the asynchronous call responds.  The second line specifies that a &#8220;highlight&#8221; visual effect will be applied to that block when it is rendered.</p><p>That&#8217;s it!  Start you web server again, browse to http://localhost:3000/posts and give it a go.</p><h3 class="title">Make it Look Pretty!</h3><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/style.jpg" alt="Style in "  /></p><p>I&#8217;ve created a stylesheet, which we can use to make things look a bit more respectful.  Create a file called layout.css in the public/stylesheets folder then add the following CSS code:</p><pre name="code" class="css">
body
{
  font-family: tahoma, sans-serif;
  font-size: 18px;
  background-color: #4B7399;
  width: 100%;
  color: #ffffff;
  margin: 0;
  text-align: center;
}

#content
{
  width: 800px;
  margin: 0 auto;
  text-align: left;
}

.post
{
  padding: 5px 20px 5px 20px;
  background-color: #ffffff;
  margin: 20px 0 20px 0;
  color: #000000;
}
</pre><p>Finally, you will need to add stylesheet_link_tag call to the posts.html.erb layout file.  As per below, the call should be placed in the head tag.</p><pre name="code" class="javascript">
&lt;head&gt;
  &lt;%= javascript_include_tag :all %&gt;
  <b>&lt;%= stylesheet_link_tag 'layout' %&gt;</b>
&lt;/head&gt;
</pre><p>OK! It doesn&#8217;t look that pretty, but it will do for our purposes.</p><p class="img"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ruby1/twitter2.jpg" alt="Twitter2 in "  /></p><h3 class="title">Setting up a Home Page</h3><p>To have the root URL (http://localhost:3000) direct the user towards your posts you will first need to delete the public/index.html file.  Do this now.</p><p>The second thing you need to do is set up a route in your config\routes.rb file.  Open routes.rb in notepad and add a new line to the end using map.root, as shown below.</p><pre name="code" class="javascript">
ActionController::Routing::Routes.draw do |map|
  map.resources :posts
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
  map.root :controller => "posts"
end
</pre><p>For more on routes, try the <a href="http://api.rubyonrails.org/classes/ActionController/Routing.html">Rails API Documentation</a></p><p>Now if you browse to http://localhost:3000.  The request will be routed to the posts controller.</p><h3 class="title">Summary</h3><p>This concludes the first part of the series.  Depending on the popularity of this article, parts 2 and 3 will follow shortly.</p><h4 class="title">What have we Learnt?</h4><p>You&#8217;ve learnt how to carry out basic application design and how to use this design to work out what models are required.  Further to this, you&#8217;ve learnt how to use the console to help with the development of your application.  Finally, you used AJAX to perform asynchronous requests to the server.</p><div class="author-box"><div class="author-text"> <img height="80" width="80" class="author-photo" src="http://www.noupe.com/wp-content/uploads/2009/06/phil_mcclure_small.jpg" alt="Phil Mcclure Small in "  /></p><h4><strong>Author</strong>: <a href="http://therailworld.com">Phil McClure</a></h4><p>Phil McClure is a Software Developer from Belfast, Northern Ireland. His main interests are software architecture, design patterns and how these can be applied to web development. Phil blogs at <a href="http://therailworld.com">Therailworld</a>. Follow him on <a href="http://www.twitter.com/overture8">Twitter</a>.</p></p></div><div class="write-for-us"><strong class="red">Write for Us!</strong> We are looking for exciting and creative articles, if you want to contribute, just send us an <a href="mailto:info@noupe.com">email</a>.</div></p></div> ]]></content:encoded> <wfw:commentRss>http://www.noupe.com/ajax/create-a-simple-twitter-app.html/feed</wfw:commentRss> <slash:comments>76</slash:comments> </item> <item><title>How AJAX Works: 10 Practical Uses For AJAX</title><link>http://www.noupe.com/ajax/how-ajax-works.html</link> <comments>http://www.noupe.com/ajax/how-ajax-works.html#comments</comments> <pubDate>Sat, 13 Jun 2009 21:01:20 +0000</pubDate> <dc:creator>Editorial</dc:creator> <category><![CDATA[AJAX]]></category><guid isPermaLink="false">http://www.noupe.com/?p=14241</guid> <description><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt="" /></a></div></td></tr></table> &nbsp;&nbsp;AJAX has gotten more and more popular over the years, and has allowed web applications to act more and more like desktop applications. AJAX can provide a lot of additional functionality that could not be accomplished any other way.What [...]]]></description> <content:encoded><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="Advertisement in " border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt=" in "  /></a></div></td></tr></table><p>AJAX has gotten more and more popular over the years, and has allowed web applications to act more and more like desktop applications. AJAX can provide a lot of additional functionality that could not be accomplished any other way.</p><p><span id="more-14241"></span></p><h3 class="title"><strong>What Is AJAX? How Does It Work?</strong></h3><p>AJAX stands for Asynchronous JavaScript and XML. It is used for allowing the client side of an application to communitcate with the server side of the application. Before AJAX, there was no way for the client side of a web application to communicate directly with the server. Instead, you would have to use page loads. With AJAX, the client and server can communicate freely with one another.</p><h4 class="title">Here is how the usual AJAX script goes:</h4><ul class="post"><li>Some action triggers the event, like the user clicking a button.</li><li>The AJAX call fires, and sends a request to a server-side script, using XML</li><li>The server-side script (PHP, ASP, or whatever) takes the input from JavaScript, can access the database if it needs to, and processes the data.</li><li>Using XML again, the script sends the data back to the original client-side page that made the request</li><li>A second JavaScript function, called a callback function,catches the data, and updates the web page</li></ul><p>Throughout this tutorial, we will discuss how various scripts use this routine to accomplish a wide variety of effects.</p><h3 class="title"><strong>1. Login Forms</strong></h3><p class="img"><a href="http://www.digg.com"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-1.jpg" alt="Ajax-1 in " width="?" height="?" /></a></p><p>Instead of going to a login page, and then navigating back to the page you originally wanted, with AJAX, a user can type in their user name and password directly into the original page. From there AJAX will send a request to the server to log them in. The server let’s the page know they’ve been logged in, and the page you are on can update as needed. Digg has a login-system that works like this.</p><p><strong>Example: </strong><a href="http://www.digg.com">Digg.com</a> (top of page)</p><p>Plugin:<a href="http://malsup.com/jquery/form/"> jQuery Form Plugin</a></p><h3 class="title"><strong>2. Auto-Complete</strong></h3><p class="img"><a href="http://www.google.com"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-2.jpg" alt="Ajax-2 in " width="?" height="?" /></a></p><p>Google was one of the first major companies to start using AJAX, and Google’s search suggestion tool was one of the first ways they used it, and one of the first auto-complete tools made. When typing into the Google search bar, it starts to use AJAX to get common results from the database on each keystroke. Auto-Complete is great for forms where you have a lot of possible inputs, and making a select drop down would be too long and cumbersome.</p><p><strong>Example: </strong><a href="http://www.google.com">Google Search</a></p><p>Plugin:&nbsp; <a href="http://plugins.jquery.com/project/jq-autocomplete">jq autocomplete</a></p><h3 class="title"><strong>3. Voting and Rating</strong></h3><p class="img"><a href="http://www.reddit.com"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-3.jpg" alt="Ajax-3 in " width="?" height="?" /></a></p><p>Social bookmarking sites like Digg and Reddit let the users decide the main content of the site by voting on content that the users like. They use AJAX to handle all of the voting, so that the users are able to voice their opinions on a number of stories quickly and easily.</p><p><strong>Example: </strong><a href="http://www.reddit.com">Reddit</a></p><h3 class="title"><strong>4. Updating With User Content</strong></h3><p class="img"><a href="http://www.twitter.com"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-4.jpg" alt="Ajax-4 in " width="?" height="?" /></a></p><p>One of the things that made Twitter so popular was their simple and easy-to-use interface. When someone makes a ‘tweet’, it is instantly added to their feed, and everything is updated. Recently, Twitter has started using AJAX with their ‘trending topics’ pages. Every few seconds, the page lets the user know that more tweets have been made about the subject, giving them up-to-the-second updates.</p><p><strong>Example: </strong><a href="http://www.twitter.com">Twitter</a></p><h3 class="title"><strong>5. Form Submission &#038; Validation </strong></h3><p class="img"><a href="http://kawika.org/jquery/checkbox/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-5.jpg" alt="Ajax-5 in " width="?" height="?" /></a></p><p>Forms have always tricky to work with, but AJAX can make them a lot better for the users. AJAX can be used in a variety of ways, from the auto complete mentioned above, to validation and submission as well. Some sites use AJAX to check if a form meets certain requirements, such as password strength, or if something is a valid email or URL.</p><p><strong>Example: </strong><a href="http://www.thinkflick.com/freebies/10-great-jquery-form-plugins/">10 Cool jQuery Form Plugins</a></p><h3 class="title"><strong>6. Chat Rooms And Instant Messaging</strong></h3><p class="img"><a href="http://www.meebo.com/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-6.jpg" alt="Ajax-6 in " width="?" height="?" /></a></p><p>Chatting online has come a long way from the days of IRC. Chat rooms and instant messaging can now be handled in the browser completely. There are two main AJAX processes in a chat room or IM application. Think of one of them as your ears, and one of them as your mouth. Your ‘mouth’ updates the server and lets it know that you have sent a message. The ‘ears’ check with the server constantly, and updates your page with messages that have been sent by whoever you are chatting with.</p><p><strong>Example: </strong><a href="http://www.meebo.com/">Meebo Chat (Uses Ajax)</a></p><p><strong>Plugin: </strong><a href="http://anantgarg.com/2009/05/13/gmail-facebook-style-jquery-chat/">GMail/Facebook Style Chat Script</a></p><h3 class="title"><strong>7. Slicker UIs</strong></h3><p class="img"><a href="http://jqueryui.com/demos/droppable/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-7.jpg" alt="Ajax-7 in " width="?" height="?" /></a></p><p>Creating a clean, slick user interface is a very popular use of AJAX. It allows users to accomplish more on a single page. The benefits of this are twofold: First, it makes using the web application quicker and easier for the user; Secondly, it cuts down on the number of requests you have to make to the server, which cuts down on bandwidth and load times. A free file upload service called Drop.io uses this well. Google has also really pushed the envelope of what is possible with AJAX by making desktop-like applications like Google Docs and Google Maps.</p><p><a href="http://jqueryui.com/">jQuery UI Library</a></p><h3 class="title"><strong>8. External Widgets</strong></h3><p class="img"><a href="https://www.google.com/adsense/static/en_US/AdFormats.html?hl=en_US&#038;gsessionid=jfcW8Ypze14jT1AcH9jPTg"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-8.jpg" alt="Ajax-8 in " width="?" height="?" /></a></p><p>When using AJAX, the page that is using the JavaScript isn’t just limited to the server it is located on. The AJAX can make a call to any server online. This is how a number of plug-ins for Content Management Systems like Wordpress work, and other various scripts like Google Adsense.</p><p><strong>Example: </strong><a href="http://www.adsense.com">Google Adsense</a></p><p><strong>Plugin: </strong><a href="http://www.hotscripts.com/listing/jquery-load-external-content-into-div/">Script for loading external content into div</a></p><h3 class="title"><strong>9. Lightboxes instead of pop-ups</strong></h3><p class="img"><a href="http://www.logosauce.com/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-9.jpg" alt="Ajax-9 in " width="?" height="?" /></a></p><p>Pop-up blockers are very common place these days, and for a good reason: pop-ups are annoying. Using light boxes, which are pop-ups inside the browser window, the pop-up blocker can’t stop it, and they aren’t quite as irritating to the user. Some people use them for advertising, like on Darren Rowe’s ProBlogger.com. They can also be used for something like a login or register box, like Reddit does when you try to vote and you are not logged in.</p><p><strong>Example: </strong><a href="http://www.logosauce.com/">Logo Sauce</a></p><p><strong>Plugin: </strong><a href="http://leandrovieira.com/projects/jquery/lightbox/">Lightbox Plugin</a></p><h3 class="title"><strong>10. Using AJAX With Flash</strong></h3><p class="img"><a href="http://www.kongregate.com"><img src="http://media.smashingmagazine.com/cdn_noupe/img/ajax-works/ajax-10.jpg" alt="Ajax-10 in " width="?" height="?" /></a></p><p>Using AJAX along with Flash is a rarely used technique, but it can be used to generate some impressive results. The flash game website Kongregate uses this to great effect. Using their API, they have their own achievement system that involves winning ‘badges’ for completing various accomplishments in games. When a badge is earned, the API in Flash sends a response back to JavaScript, which then uses AJAX to update the user’s profile with the newly earned award.</p><p><strong>Example: </strong><a href="http://www.kongregate.com">Kongregate</a></p><p><strong>Plugin: </strong><a href="http://webscripts.softpedia.com/scriptDownload/jQuery-Flash-Plugin-Download-44476.html">jQuery Flash Plugin</a></p><p>I hope this article has given you a lot of ideas of how you can use AJAX to improve and expand your web applications. What are some other uses you can think of for AJAX?</p><div class="author-box"><div class="author-text"><h4><strong>Author</strong>: Joel Reyes</h4><p>Joel Reyes Has been designing and coding web sites for several years, this has lead him to be the creative mind behind Looney Designer a design resource and portfolio site that revolves around web and graphic design.</p></p></div><div class="write-for-us"><strong class="red">Write for Us!</strong> We are looking for exciting and creative articles, if you want to contribute, just send us an <a href="mailto:info@noupe.com">email</a>.</div></p></div> ]]></content:encoded> <wfw:commentRss>http://www.noupe.com/ajax/how-ajax-works.html/feed</wfw:commentRss> <slash:comments>63</slash:comments> </item> <item><title>10 AJAX-based &amp; PHP WebMail Clients For a Great User Experience</title><link>http://www.noupe.com/ajax/10-ajax-webmail-clients.html</link> <comments>http://www.noupe.com/ajax/10-ajax-webmail-clients.html#comments</comments> <pubDate>Thu, 12 Mar 2009 01:36:40 +0000</pubDate> <dc:creator>Editorial</dc:creator> <category><![CDATA[AJAX]]></category> <category><![CDATA[PHP]]></category><guid isPermaLink="false">http://www.noupe.com/?p=9316</guid> <description><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt="" /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt="" /></a></div></td></tr></table> &nbsp;&nbsp;Employees need to access their email from wherever they happen to be – on the road, at customer sites, remote offices, and at home. WebMail clients allows receiving and sending email messages using POP3 and SMTP protocols through both [...]]]></description> <content:encoded><![CDATA[<table width="650"><tr><td width="650"><div style="width:650px;"> <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="Advertisement in " border="0" /><br /> <a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=8" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=8" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=9" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=9" border="0" alt=" in "  /></a>&nbsp;<a href="http://auslieferung.commindo-media-ressourcen.de/www/delivery/ck.php?zoneid=10" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/www/delivery/avw.php?zoneid=10" border="0" alt=" in "  /></a></div></td></tr></table><p>Employees need to access their email from wherever they happen to be – on the road, at customer sites, remote offices, and at home. WebMail clients allows receiving and sending email messages using POP3 and SMTP protocols through both local and remote mail servers. Providing secure filtering of unsafe content while viewing HTML-formatted email messages. WebMail clients can operate under different popular web platforms (PHP, ASP.NET, ruby on rails, java).</p><p>Today i wanted to share with you 10 AJAX-based &#038; PHP webmail client that delivers the look and feel, usability and performance of a desktop application. Some of the webmail clients listed below are open source code that can be easily modified to better suit user&#8217;s needs, while others are not. So You <strong>must </strong>check their license to know the rules.</p><p><span id="more-9316"></span></p><h3 class="title">1. <a href="http://roundcube.net/">RoundCube</a></h3><p>RoundCube Webmail is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality you expect from an e-mail client, including MIME support, address book, folder manipulation, message searching and spell checking. RoundCube Webmail is written in PHP and requires a MySQL or Postgres database. The user interface is fully skinnable using XHTML and CSS 2.</p><p class="img"><a href="http://roundcube.net/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail1.jpg" alt="Webmail1 in "  /></a></p><h3 class="title">2. <a href="http://www.zimbra.com/community/downloads.html">Zimbra</a></h3><p>Zimbra provides open source email and calendar groupware software, with a browser-based AJAX client to deliver a rich experience with a message conversation view and visual search builder that makes multi-gigabyte inboxes easier to use. They also integrate 3rd party applications as “mash-ups” via web services so you can view CRM data, maps, or anything else without leaving the context of a message.</p><p class="img"><a href="http://www.zimbra.com/community/downloads.html"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail2.jpg" alt="Webmail2 in "  /></a></p><h3 class="title">3. <a href="http://www.xuheki.com/">Xuheki</a></h3><p>Xuheki is a fast IMAP client which has a browser-based AJAX client so you can access it from anywhere to read your email. It has most features that you would expect from a fine “Mail User Agent”. Xuheki is distributed under the terms of the GNU General Public License.</p><p class="img"><a href="http://www.xuheki.com/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail3.jpg" alt="Webmail3 in "  /></a></p><h3 class="title">4. <a href="http://www.squirrelmail.org/">SquirrelMail</a></h3><p>SquirrelMail is a standards-based webmail package written in PHP. It includes built-in pure PHP support for the IMAP and SMTP protocols, and all pages render in pure HTML 4.0 (with no JavaScript required) for maximum compatibility across browsers.</p><p class="img"><a href="http://www.squirrelmail.org/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail4.jpg" alt="Webmail4 in "  /></a></p><h3 class="title">5. <a href="http://atmail.com/index.php">Atmail</a></h3><p>AtMail, a free lightweight Ajax Webmail client software that is written in PHP that allow end user receive email via web browser and WAP devices. This webmail client software can be installed on variety platform like Windows and Linux. Plus more, it support various email technology like IMAP/POP3 mailboxes, and an optional email-server mode that uses Exim as the MTA.</p><p class="img"><a href="http://atmail.com/index.php"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail5.jpg" alt="Webmail5 in "  /></a></p><h3 class="title">6. <a href="http://www.afterlogic.com/products/webmail-lite">afterlogic</a></h3><p>AfterLogic WebMail Lite PHP is easy-to-use webmail script with modern interface, supports AJAX and skins. Users can receive, view, delete, compose, and send mail through web interface (POP3 and SMTP supported). Multiple attachments, multiple mail accounts and domains, preview panel, web-based administration. Easy installation, supports PHP 4.1 and above. Open source and completely free. Can be upgraded to Pro version with extended features&#8230;.</p><p class="img"><a href="http://www.afterlogic.com/products/webmail-lite"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail6.jpg" alt="Webmail6 in "  /></a></p><p><a href"http://www.afterlogic.com/webmail-lite-net/default.aspx" class="download">Live Demo</a></p><h3 class="title">7. <a href="http://www.hastymail.org/">Hastymail</a></h3><p>Hastymail is a full featured IMAP/SMTP client written in PHP. Compatible with PDAs, phones, text browsers, and with all mainstream browsers. Hastymail has a powerful <a href="http://www.hastymail.org/plugins/">plugin </a>system that PHP developers can use to alter the way it works. Plugins can add pages within the Hastymail application (including css files), alter existing pages by inserting XHTML, modify internal data structures within Hastymail, make AJAX callbacks using their AJAX system, and even communicate with a configured SQL server.</p><p class="img"><a href="http://www.hastymail.org/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail7.jpg" alt="Webmail7 in "  /></a></p><h3 class="title">8. <a href="http://mailr.org/">Mailr</a></h3><p>Mailr is an open source webmail application written in Ruby which uses Ruby On Rails web application framework. The application is tested with Courier-IMAP but it should be possible to use it with any other IMAP server.</p><p class="img"><a href="http://mailr.org/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail8.jpg" alt="Webmail8 in "  /></a></p><h3 class="title">9. <a href="http://www.claros.org/web/home.do">Claros inTouch</a></h3><p>Claros inTouch is an Ajax communication suite with key features such as webmail, address book, post-it notes, calendar (in progress), webdisk (in progress), built-in instant messenger and rss reader. It is the first open source web application which features built in spam protection and instant messaging capabilities together with web 2.0 technologies. Built with Java, utilizes JSP/Servlets with the well known J2EE technologies &#038; uses MySQL database.</p><p class="img"><a href="http://www.claros.org/web/home.do"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail9.jpg" alt="Webmail9 in "  /></a></p><h3 class="title">10. <a href="http://www.postaciwebmail.org/">Postaci</a></h3><p>Postaci is a PHP based POP3/IMAP e-mail client that is very simple and easy to use.  It supports SMTP authentication.  It can handle both protocols and the defaul protocol can be changed from a single configuration file. Postaci is platform independent, it can work on any operating system which supports PHP. Postaci is also database independent, it can be used with MySQL, mSQL, Microsoft SQL, Sybase,<br /> PostgreSQL.</p><p class="img"><a href="http://www.postaciwebmail.org/"><img src="http://media.smashingmagazine.com/cdn_noupe/img/webmail10.jpg" alt="Webmail10 in "  /></a></p> ]]></content:encoded> <wfw:commentRss>http://www.noupe.com/ajax/10-ajax-webmail-clients.html/feed</wfw:commentRss> <slash:comments>64</slash:comments> </item> </channel> </rss>
<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached (user agent is rejected)
Database Caching 12/14 queries in 0.080 seconds using memcached
Content Delivery Network via media.smashingmagazine.com/cdn_noupe (user agent is rejected)

Served from: ip-10-227-50-15.eu-west-1.compute.internal @ 2010-03-12 18:31:58 -->