<?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>Learning jQuery &#187; JavaScript</title>
	<atom:link href="http://www.learningjquery.org/index.php/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.learningjquery.org</link>
	<description>Learning jQuery: Tips, techniques, and tutorials for the jQuery JavaScript library</description>
	<lastBuildDate>Tue, 24 Aug 2010 10:10:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Javascript For Designers: Getting on Your Feet Fast</title>
		<link>http://www.learningjquery.org/index.php/javascript-for-designers-getting-on-your-feet-fast/</link>
		<comments>http://www.learningjquery.org/index.php/javascript-for-designers-getting-on-your-feet-fast/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 05:39:06 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.learningjquery.org/?p=81</guid>
		<description><![CDATA[Web designers are a special breed – we’re one of a small group of professionals that actively seeks out to improve ourselves and our craft through any means possible. This generally means on our own, from each other, and through an awful lot of ‘guess, test and revise.’  Web design isn’t for the faint [...]]]></description>
			<content:encoded><![CDATA[<p>Web designers are a <strong>special breed </strong>– we’re one of a small group of professionals that actively seeks out to improve ourselves and our craft through any means possible. This generally means on our own, from each other, and through an awful lot of ‘<em>guess, test and revise</em>.’  Web design isn’t for the faint of heart or those with any fear of failure.</p>
<p>The most daunting ‘learning experience’ for developing developers is to make the jump from the HTMLs and the CSSs of the world to web scripting. It looks good from the outside – all that added interactivity and animation and cool effects and features – oh my. But for some designers, it proves to be a difficult lesson to learn, as scripting can require more focus, logic, and organization than the coding that you are used to.</p>
<h3 class="title">Getting on Your Feet Fast</h3>
<p>Let’s take a look at bulletproof ways to ease into Javascript at an <em>accelerated</em> pace. Javascript is the perfect place to start to learn scripting because it is generally less complex than other scripting languages, and is client-side – meaning that you will be able to test your scripts on your computer as you script it, in real time, without setting up servers or putting forth any more effort than you really need to. However you code pages now is great – don’t do anything differently to accommodate Javascript – she’s easy to get along with.</p>
<p>The first place I start when looking to learn anything new is on the web – makes sense to learn the web from the web, right? Yeah, books are nice, and they can make you look intelligent, but the truth of the matter is that you’ll find most (if not all) of that same information out on the web, and, out on the web, you can find the most updated tutorials. If books suit you, there are a plethora of books out there on Javascript – feel free to help yourself to any of them.</p>
<h3 class="title">Websites That Teach Javascript</h3>
<p>Something to remember about Javascript websites as you scour the web for help – there are essentially <em>two types</em> of Javascript websites; those that are focused on scripts, and those that are focused on teaching Javascript. I say this because I’ve worked with a lot of students that have stumbled across script websites, started reading scripts on those pages as if they were tutorials and then got confused and discouraged when they couldn’t follow the code – this would be akin to trying to read Braille by shouting at it.</p>
<p>Javascript learning sites spend more time on simple logic and processes. Stuff you will never really do on a website (as you’ll see below) but it will get you into the scripting mindset and help you ease into the building blocks that will creep into every script you work with.</p>
<p>Let’s take a look at two ‘learning’ Javascript sites.</p>
<h4 class="title"><a href="http://tizag.com/">Tizag.com</a></h4>
<p class="img"><a href="http://tizag.com/"><img src="http://noupe.com/img/js-designers/js-01.jpg" alt="Javascript For Designers" /></a></p>
<p>I don’t know where this site came from or remember how I found it, but I constantly reference Tizag for many of their tutorials. They are straightforward and direct, but move through the topic in a way that makes it easy to understand. Their lessons aren’t too long, giving you just enough to take out and test before returning for the next lesson.</p>
<h4 class="title"><a href="http://w3schools.com/js/default.asp">W3schools.com</a></h4>
<p class="img"><a href="http://w3schools.com/js/default.asp"><img src="http://noupe.com/img/js-designers/js-02.jpg" alt="Javascript For Designers" /></a></p>
<p>This site is a step up from the rest in teaching you Javascript (or anything for that matter) and there’s one really simple reason why – they let you try it for yourself right there in the tutorial. A lot of people don’t like learning from books because you can’t try it for yourself; that is unless, of course, you find some ridiculous way to prop the book up against your monitor, so you can read it without holding it open and type all at once, but that’s not very conducive to being able to focus on the script at hand.</p>
<h4 class="title"><a href="http://javascript.about.com/od/learnjavascript/Learn_to_Program_with_Javascript.htm">About.Com</a></h4>
<p class="img"><a href="http://javascript.about.com/od/learnjavascript/Learn_to_Program_with_Javascript.htm"><img src="http://noupe.com/img/js-designers/js-03.jpg" alt="Javascript For Designers" /></a></p>
<p>About.com offers premium advice and tutorials on just about anything for free. It’s pretty much to a multi-information oriented site. Fortunately, here you’ll be able to find a variety of tutorials and workshops focused on begginer to advanced JavaScript users.</p>
<h4 class="title"><a href="http://www.academictutorials.com/javascript/">Academic Tutorials</a></h4>
<p class="img"><a href="http://www.academictutorials.com/javascript/"><img src="http://noupe.com/img/js-designers/js-04.jpg" alt="Javascript For Designers" /></a></p>
<p>The Academic Tutorials site is very similar to the W3 schools learning center. It provides extensive and well organized facts on JavaScript. You will also find yourself with more hands-on experience than you thought, since almost every tutorial has various examples.</p>
<h4 class="title"><a href="http://www.learn-javascript-tutorial.com/">Learn-JavaScript-Tutorial.com</a></h4>
<p class="img"><a href="http://www.learn-javascript-tutorial.com/"><img src="http://noupe.com/img/js-designers/js-05.jpg" alt="Javascript For Designers" /></a></p>
<p>This site contains front-line examples and begginer JavaScript experiences for the novice of users. Tutorials showcase several useful scripts and images that aid you in the advancement of your skills as a designer.</p>
<h3 class="title">Walk Before You Can Run</h3>
<p>Let’s try it ourselves! In Javascript, the word ‘document’ refers to the current page. The word ‘write’ allows me to write text on the page. In the majority of cases, your scripts will be included in a script tag – this is how the browser identifies that you’ve switched gears. It’s just like the style tag, but it happens whenever you need javascript (even in the body tag) and uses a type of text/javascript instead of the more familiar text/css. So, if I wanted to build a script to put my name on the screen it would look like this…</p>
<div class="dp-highlighter">
<ol class="dp-c">
<li class="alt"><span><span>document.write(“My name is Matt”); </span></span></li>
</ol>
</div>
<pre class="js" style="display: none;">document.write(“My name is Matt”);</pre>
<p>It’s that simple – as you learn more, you’ll do more impressive things, but, hey, we all have to start somewhere, right? Consider ‘document.write’ like the fast food job you had in high school. It’s probably not something you will impress your friends with, but once you’re an investment banker, you’ll look back on it with nostalgia.</p>
<p>Head out to w3schools.com, get into their Javascript tutorial, and choose the first example – use this and build your first script for yourself! Replace the text with whatever text you want, or add additional ‘document.write’ commands to put more text in your page.</p>
<h3 class="title">Subtleties of JS</h3>
<p>Keep in mind that Javascript is like an oompa loompa in your web factory – its not building the page, its helping you build the code. So, when you put text on the screen, the script you wrote is not putting text directly on the screen… its putting text in the code, and the browser is displaying it as it normally would. Don’t believe me? Try this:</p>
<p>Add a second ‘document.write’ command. You should notice that the two pieces of text follow directly after one another on your webpage.</p>
<p>Now, between the “quotes” where your text is, add HTML tags. Add a paragraph tag on each command. You should have something like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.noupe.com/javascript/javascript-for-designers.html#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.noupe.com/javascript/javascript-for-designers.html#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.noupe.com/javascript/javascript-for-designers.html#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.noupe.com/javascript/javascript-for-designers.html#">?</a></div>
</div>
<ol class="dp-c">
<li class="alt"><span><span>document.write(</span><span class="string">&#8220;&lt;p&gt;My name is Matt&lt;/p&gt;&#8221;</span><span>); </span></span></li>
<li><span>document.write(<span class="string">&#8220;&lt;p&gt;This is my first script&lt;/p&gt;&#8221;</span><span>); </span></span></li>
</ol>
</div>
<pre class="js" style="display: none;">document.write("&lt;p&gt;My name is Matt&lt;/p&gt;");
document.write("&lt;p&gt;This is my first script&lt;/p&gt;");</pre>
<p>Because the Javascript will write this directly into the code, you can use things like HTML tags because the browser will be able to interpret and display them!</p>
<p>As you get to more and more complicated topics, the value of being able to code alongside the tutorials on w3schools.com will be invaluable to your ability to learn Javascript fast and feel comfortable doing so.</p>
<h3 class="title">Put It to Use</h3>
<p>The best way to motivate yourself is to see what you could do if you put the time into learning Javascript. While there are a ton of ways to enhance your HTML, I’ve included some tutorials and demos below that will show you how Javascript can play nice with your CSS to create some pretty impressive results, relying a lot on your current skill to help enhance the Javascript you are learning.</p>
<h4 class="title"><a href="http://www.alistapart.com/articles/dropdowns/">Suckerfish Dropdowns</a></h4>
<p class="img"><a href="http://www.alistapart.com/articles/dropdowns/"><img src="http://noupe.com/img/js-designers/js-06.jpg" alt="Javascript For Designers" /></a></p>
<p>As you learn Javascript, you should know about suckerfish dropdowns. Essentially, these dropdowns use a lightweight combination of both CSS and Javascript to create accessible menus that can be used to add additional links to your navigation.</p>
<p>What’s interesting about this is that the Javascript is literally adding a class to the elements – so, think about it like this – you’ve set up a class that determines a specific look and feel… but Javascript plays the role in ‘invoking’ that class – creative uses of such a trick like this could yield some very interesting results. Here it is being used to apply hover effects to specific elements, but the application of this technique could be limitless.</p>
<h4 class="title"><a href="http://www.alistapart.com/articles/alternate/">Switching Stylesheets</a></h4>
<p class="img"><a href="http://www.alistapart.com/articles/alternate/"><img src="http://noupe.com/img/js-designers/js-07.jpg" alt="Javascript For Designers" /></a></p>
<p>You probably already know that you can use alternate style sheets on a page, but didn’t know how to switch them on the fly – Javascript will help you do this. If you had different colored themes that you wanted your users to be able to customize, you could use Javascript to switch between the two. You could even get creative – create a different theme for different times of day (morning, day, night) and display a stylesheet based on the user’s local time.</p>
<h4 class="title"><a href="http://css-tricks.com/improved-current-field-highlighting-in-forms/">Improved Current Field Highlighting</a></h4>
<p class="img"><a href="http://css-tricks.com/improved-current-field-highlighting-in-forms/"><img src="http://noupe.com/img/js-designers/js-08.jpg" alt="Javascript For Designers" /></a></p>
<p>This tutorial from CSS-Tricks shows us a way that we can use Javascript to change the way we are highlighting active fields in forms. So, generally, the cursor blinks in that form field, and some browsers have taken it upon themselves to do something a little different, but this tutorial takes a look at how we can use Javascript and jQuery to improve the highlighting with a little style.</p>
<h4 class="title"><a href="http://www.impressivewebs.com/javascript-folder-collapser-for-dynamic-content-tutorial/">JavaScript Folder Collapser for Dynamic Content</a></h4>
<p class="img"><a href="http://www.impressivewebs.com/javascript-folder-collapser-for-dynamic-content-tutorial/"><img src="http://noupe.com/img/js-designers/js-10.jpg" alt="Javascript For Designers" /></a></p>
<p>This tutorial will show you how to create a group of collapsible folders using JavaScript and some elements of JQuery. The code will be featured in a way that allows for ease of implementation into a dynamic page — in this situation, the number of folders may be unknown.</p>
<h4 class="title"><a href="http://teamtutorials.com/web-development-tutorials/html-tutorials/javascript-progress-bar">JavaScript Progress Bar</a></h4>
<p class="img"><a href="http://teamtutorials.com/web-development-tutorials/html-tutorials/javascript-progress-bar"><img src="http://noupe.com/img/js-designers/js-11.jpg" alt="Javascript For Designers" /></a></p>
<p>Within this tutorial you’ll be able to walk through the configuration and structuring of a javascript based progress bar that can be triggered by a variety of things. For example, you could have it triggered by the progress of a sign-up sheet, or even by the amount of checkboxes that are checked.</p>
<h4 class="title"><a href="http://teamtutorials.com/web-development-tutorials/password-verification-and-strength-checker">Password Verification and Strength Checker</a></h4>
<p class="img"><a href="http://teamtutorials.com/web-development-tutorials/password-verification-and-strength-checker"><img src="http://noupe.com/img/js-designers/js-12.jpg" alt="Javascript For Designers" /></a></p>
<p>This tutorial will aid you in creating a registration form that includes a password strength checker to tell the user how strong (security wise) their password is. This form will also include several boxes for password use and other vital information.</p>
<h3 class="title">The End of Our Road – Javascript Frameworks</h3>
<p>jQuery is what is called a ‘<em>Framework</em>’. Frameworks contain sets of pre-written controls which make it easier and more efficient for you to develop your scripts. Instead of rewriting the same basic scripts over and over, or managing your own library, javascript frameworks such as <strong><em>jQuery</em></strong>, <strong><em>prototype</em></strong>, <strong><em>script.aculo.us</em></strong>,<strong><em> mootools</em></strong>, and others exist to save you the time.  In most cases, these frameworks are extended in ways that add more functionality.</p>
<p>Unfortunately, a complete discussion on Javascript frameworks comparing the functions included in each is a discussion for another time, but its something to know is out there.</p>
<h4 class="title">Check it out for Yourself: jQuery for Designers</h4>
<p class="img"><a href="http://docs.jquery.com/Tutorials:jQuery_For_Designers"><img src="http://noupe.com/img/js-designers/js-09.jpg" alt="Javascript For Designers" /></a></p>
<h4 class="title">And the Best Way of All to Learn Javascript…</p>
<p>From http://www.noupe.com</h4>
]]></content:encoded>
			<wfw:commentRss>http://www.learningjquery.org/index.php/javascript-for-designers-getting-on-your-feet-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use PHP Functions In JavaScript: PHP.JS</title>
		<link>http://www.learningjquery.org/index.php/use-php-functions-in-javascript-phpjs/</link>
		<comments>http://www.learningjquery.org/index.php/use-php-functions-in-javascript-phpjs/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 01:19:43 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.learningjquery.org/?p=72</guid>
		<description><![CDATA[PHP.JS is a JavaScript library that enables anyone to use PHP functions client-side.
It can be very helpful to any developer who wants to get the PHP functions on static pages, get the extra functionality (like being able to use file_get_contents(), mktime(), serialize() ) &#38; take the load off the server.

Currently ~400 functions are ported &#38; there [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpjs.org/" target="_blank"><strong>PHP.JS</strong></a> is a <strong>JavaScript library</strong> that enables anyone to <strong>use PHP functions client-side</strong>.</p>
<p>It can be very helpful to any developer who wants to get the PHP functions on static pages, get the extra functionality (like being able to use <code>file_get_contents()</code>, <code>mktime()</code>, <code>serialize()</code> ) &amp; take the load off the server.</p>
<p><a href="http://phpjs.org/" target="_blank"><img src="http://www.webresourcesdepot.com/wp-content/uploads/image/php-js.jpg" alt="PHP.JS" width="480" height="70" /></a></p>
<p>Currently ~400 functions are ported &amp; there are still ones being experimented or waiting to be included. But it is possible to find the most popular ones (even <code>md5()</code>).</p>
<p>The download packages can be totally customized &amp; it is possible to get only the functions you need besides all of them.</p>
<p><strong>Requirements:</strong> No Requirements<br />
<strong>Compatibility:</strong> All Major Browsers<br />
<strong>Website:</strong> <a href="http://phpjs.org/" target="_blank">http://phpjs.org/</a><br />
<strong>Download:</strong> <a href="http://phpjs.org/packages/index" target="_blank">http://phpjs.org/packages/index</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.learningjquery.org/index.php/use-php-functions-in-javascript-phpjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to the HTML5 audio tag javascript manipulation</title>
		<link>http://www.learningjquery.org/index.php/introduction-to-the-html5-audio-tag-javascript-manipulation/</link>
		<comments>http://www.learningjquery.org/index.php/introduction-to-the-html5-audio-tag-javascript-manipulation/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 09:09:22 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.learningjquery.org/?p=52</guid>
		<description><![CDATA[by Cedric Dugas


Some of the new exciting features of HTML5 are the audio and video tag. This could potentially, in the long term, replace flash on the video level. I wanted to use the audio tag in one of my experiemental project, there is little information about how to manipulate the audio tag, and tought [...]]]></description>
			<content:encoded><![CDATA[<div class="date">by <a title="Posts by Cedric Dugas" href="http://www.position-absolute.com/author/karnius/">Cedric Dugas</a></p>
<div class="commentsNumber"></div>
</div>
<p>Some of the new exciting features of HTML5 are the audio and video tag. This could potentially, in the long term, replace flash on the video level. I wanted to use the audio tag in one of my experiemental project, there is little information about how to manipulate the audio tag, and tought it would be great to have a starter guide.</p>
<p>One thing clear is this is still an early implementation, which also means it is a bit buggy. I had a strange bug where if I had a song playing and had javascript throw errors at the same time (not related together), I could not terminate the song. Closing the tab would not stop it, I had to restart Firefox. Which lead me to think that the process is still not completely linked only to the tab (in Firefox at least).</p>
<p>I used jquery in my demo because the application I developing is wrapped around it, but this is not necessary.</p>
<p class="clearfix"><a class="demo" href="http://www.position-relative.net/creation/audiotag/" target="_blank">View demo</a><br />
(Only consisting of 5 buttons)</p>
<h3>What I learned</h3>
<p>The API is somewhat easy to work with, as it should be, play(), pause(), want to stop the volume? audioElement.volume=0. Want to start playing at 55 seconds? audioElement.currentTime = 55. Pretty cool stuff.</p>
<p>The default html audio player controls are added automatically with a simple: controls=”true”, it has good and bad sides. You don’t have to worry about it, but at the same time, for now, you cannot modify the player style. Also when you right click you have a nice contextual menu where you can save the file in ff3.5.</p>
<p><strong>A normal audio tag</strong></p>
<p><strong>Your browser does not support the audio tag.</strong></p>
<p><strong>Add and play a sound via JavaScript</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">var audioElement = document.createElement(&#8216;audio&#8217;);</div>
</li>
<li class="li1">
<div class="de1">audioElement.setAttribute(&#8217;src&#8217;, &#8216;loading.ogg&#8217;);</div>
</li>
<li class="li1">
<div class="de1">audioElement.play();</div>
</li>
</ol>
</div>
<p><strong>Get the song filepath and duration</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">audioElement.src;</div>
</li>
<li class="li1">
<div class="de1">audioElement.duration;</div>
</li>
</ol>
</div>
<p><strong>Load a sound</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">var audioElement = document.createElement(&#8216;audio&#8217;);</div>
</li>
<li class="li1">
<div class="de1">audioElement.setAttribute(&#8217;src&#8217;, &#8216;Mogwai2009-04-29_acidjack_t16.ogg&#8217;);</div>
</li>
<li class="li1">
<div class="de1">audioElement.load()</div>
</li>
<li class="li1">
<div class="de1">audioElement.addEventListener(&#8220;load&#8221;, function() {</div>
</li>
<li class="li1">
<div class="de1">audioElement.play();</div>
</li>
<li class="li1">
<div class="de1">$(&#8220;.duration span&#8221;).html(audioElement.duration);</div>
</li>
<li class="li1">
<div class="de1">$(&#8220;.filename span&#8221;).html(audioElement.src);</div>
</li>
<li class="li1">
<div class="de1">}, true);</div>
</li>
</ol>
</div>
<p><strong>Stop a song</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">audioElement.pause();</div>
</li>
</ol>
</div>
<p><strong>Change volume</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">audioElement.volume=0;</div>
</li>
</ol>
</div>
<p><strong>Play at exactly 35 seconds in the song</strong></p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">audioElement.currentTime=35;</div>
</li>
<li class="li1">
<div class="de1">audioElement.play();</div>
</li>
</ol>
</div>
<h3>The bad parts</h3>
<p>No stop(), only pause(), I really do not know what stopped them to put stop() in the API.<br />
No way to get the songs name.<br />
The only accessible format are ogg and wav, no mp3 love. It also means that you will have to convert all your sounds in ogg.<br />
As I said this is a bit buggy but understandable, the specs are not even finished.<br />
Microsoft will probably implement the audio and video tag in 2022.</p>
<h3>The good parts</h3>
<p>The API is easy to use, you can have a song playing in no time.<br />
You do not need to parse the audio object in the HTML body, you can have it played directly in your script.<br />
In the end, I’m really happy on how this turned out.</p>
<p class="clearfix"><a class="download" href="http://www.position-relative.net/creation/audiotag/audiotag.zip">Download the source code</a> <a class="demo" href="http://www.position-relative.net/creation/audiotag/" target="_blank">View demo</a></p>
<p><strong>Tested on:</strong><br />
Firefox 3.5</p>
<h3>Ressources</h3>
<p><a href="http://hacks.mozilla.org/2009/06/exploring-music-audio/">http://hacks.mozilla.org/2009/06/exploring-music-audio/</a><br />
<a href="https://developer.mozilla.org/en/Using_audio_and_video_in_Firefox">https://developer.mozilla.org/en/Using_audio_and_video_in_Firefox</a><br />
<a href="http://webkit.org/blog/140/html5-media-support/">http://webkit.org/blog/140/html5-media-support/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.learningjquery.org/index.php/introduction-to-the-html5-audio-tag-javascript-manipulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Store Adobe AIR Application Preferences Using JavaScript</title>
		<link>http://www.learningjquery.org/index.php/how-to-store-adobe-air-application-preferences-using-javascript/</link>
		<comments>http://www.learningjquery.org/index.php/how-to-store-adobe-air-application-preferences-using-javascript/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 01:03:48 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Adobe AIR Application]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.learningjquery.org/?p=49</guid>
		<description><![CDATA[by Andrew Tetlaw
When I last wrote the Tech Times I was quite excited about starting my first AIR application, called Harpoon, using only HTML, CSS, and JavaScript. One of the features I ran out of time to discuss was the way you can use an XML file to store and retrieve application preferences.
If you downloaded [...]]]></description>
			<content:encoded><![CDATA[<p>by Andrew Tetlaw</p>
<p><strong>When I last wrote the Tech Times I was quite excited about <a href="http://sitepointcom.cmail1.com/t/y/l/krdtij/ddkyutiil/b" target="_blank">starting my first AIR application</a>, called Harpoon, using only HTML, CSS, and JavaScript. One of the features I ran out of time to discuss was the way you can use an XML file to store and retrieve application preferences.</strong></p>
<p>If you downloaded and installed Harpoon you may have noticed the Preferences panel with the select list.</p>
<p><img border="0" alt="Preferences Panel" width="371" height="99" align="bottom" /></p>
<p>Here&#8217;s the HTML for that field and its label:</p>
<pre><code>&lt;label&gt;Refresh every (minutes)&lt;/label&gt;
&lt;select id="pref_refresh" name="pref_refresh"&gt;
  &lt;option value="1"&gt;1&lt;/option&gt;
  &lt;option value="2"&gt;2&lt;/option&gt;
  &lt;option value="3"&gt;3&lt;/option&gt;
  &lt;option value="4"&gt;4&lt;/option&gt;
  ...
  &lt;option value="10"&gt;10&lt;/option&gt;
&lt;/select&gt;</code></pre>
<p>If you recall, Harpoon is destined to be an auction watching application for the <a href="http://sitepointcom.cmail1.com/t/y/l/krdtij/ddkyutiil/n" target="_blank">Flippa</a> site. Eventually this will control how often Flippa is checked for new auctions matching your query. Of course you&#8217;d want Harpoon to remember this setting, so we&#8217;ll store the selected value in an XML file.</p>
<p>Our task is this:</p>
<ul>
<li> When Harpoon is opened we check to see if the preferences file is available.</li>
<li> If unavailable Harpoon should create the file and write the default value.</li>
<li> If available Harpoon should read it and set the field value.</li>
<li> Whenever the field value is changed Harpoon should write the new value to the preferences file.</li>
</ul>
<p>This sounds way more complicated than it really is. Let&#8217;s dive in so I can show you.</p>
<p>First some adjustments to our <code>Harpoon</code> object. (If you need to prod your memory, take a detour and <a href="http://sitepointcom.cmail1.com/t/y/l/krdtij/ddkyutiil/p" target="_blank">refer back to my previous article</a>.) We want to store the refresh value, and a couple of other important values within the <code>Harpoon</code> object:</p>
<pre><code>var Harpoon = {
  ...
  prefsFile : null,
  storePath : null,
  prefs : {
    refresh : 10
  }
}</code></pre>
<p>I&#8217;ll address <code>prefsFile</code> and <code>storePath</code> in a moment, but you can also see the <code>prefs</code> object that has one property called <code>refresh</code>. This is where we&#8217;ll store the refresh value, and it&#8217;ll be accessible within our application from <code>Harpoon.prefs.refresh</code>.</p>
<p>Now we come back to the <code>prefsFile</code> and <code>storePath</code> properties. For security reasons each AIR application is given its own storage directory from which it can read and write files. This is where our preferences file will reside. These two properties will store the path to the application storage directory and the path to the preferences file. If you remember from the previous article Harpoon has an <code>init</code> function for initialisation, where we placed that call to the <code>setupWindow</code> function. We&#8217;ll add a few lines of code to that:</p>
<pre><code>init : function() {
  Harpoon.setupWindow();
  Harpoon.storePath =
      air.File.applicationStorageDirectory;
  Harpoon.prefsFile =
      Harpoon.storePath.resolvePath("prefs.xml");
  Harpoon.getPrefs();
  ...
},</code></pre>
<p>We use the <code>air.File.applicationStorageDirectory</code> to obtain Harpoon&#8217;s storage directory. Then we use the <code>resolvePath</code> method to retrieve the path to the preferences file <code>prefs.xml</code> and store it as a <code>File</code> object. The next line, <code>Harpoon.getPrefs()</code>, is a call to a new function we shall write, after the break!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.learningjquery.org/index.php/how-to-store-adobe-air-application-preferences-using-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>50 Useful JavaScript Tools</title>
		<link>http://www.learningjquery.org/index.php/50-useful-javascript-tools/</link>
		<comments>http://www.learningjquery.org/index.php/50-useful-javascript-tools/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 05:03:33 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.learningjquery.org/?p=21</guid>
		<description><![CDATA[By Jacob Gube
JavaScript is a powerful client-side scripting language used in many modern websites and Web applications. In the hands of a skilled Web developer, JavaScript can enhance the user’s experience of the website and provide rich interactive components and features. But even though syntactically simple in nature, JavaScript is often difficult to author because [...]]]></description>
			<content:encoded><![CDATA[<p><em>By Jacob Gube</em></p>
<p><strong>JavaScript</strong> is a powerful client-side scripting language used in many modern websites and Web applications. In the hands of a skilled Web developer, JavaScript can enhance the user’s experience of the website and provide rich interactive components and features. But even though syntactically simple in nature, JavaScript is often difficult to author because of the environment it runs in: the Web browser. JavaScript’s popularity is evident in emerging technologies, such as <a href="http://livedocs.adobe.com/labs/air/1/jslr/">Adobe AIR</a>, which use it as a supported language for creating desktop-based applications.</p>
<p>Below, you’ll find <strong>50  excellent tools to help you achieve various tasks involved in authoring JavaScript  code</strong>. You’ll find useful tools to speed up your coding processes, including debugging tools to hunt down places where your scripts break, unit testing and validation tools to test your scripts in various situations, security vulnerability scanners and code optimization tools to make sure your scripts are light as a feather.</p>
<p>You’ll also find a few new and alternative JavaScript and AJAX frameworks to help you explore options beyond the big names (i.e. MooTools, jQuery, YUI, Dojo, Prototype), in addition to useful scripts to help you accomplish a host of design and development tasks related to JavaScript.</p>
<p>Also, be sure to check out the following related posts:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2008/09/11/75-really-useful-javascript-techniques/">75  (Really) Useful JavaScript Techniques</a></li>
<li><a href="http://www.smashingmagazine.com/2008/04/15/60-more-ajax-and-javascript-solutions-for-professional-coding/">60  AJAX- and Javascript Solutions For Professional Coding</a></li>
<li><a href="http://www.smashingmagazine.com/2008/09/16/jquery-examples-and-best-practices/">jQuery  and JavaScript Coding: Examples and Best Practices</a></li>
<li><a href="http://www.smashingmagazine.com/2008/12/09/50-really-useful-css-tools/">50  Extremely Useful And Powerful CSS Tools</a></li>
</ul>
<h3>JavaScript/AJAX Authoring Tools</h3>
<ul>
<li><a href="http://ui.jquery.com/themeroller/">jQuery UI</a><br />
The jQuery UI allows you to design custom user  interfaces for Web applications using the <a href="http://jquery.com/">jQuery</a> library. With jQuery UI, you can reduce the amount of code you write for common rich interactive features and website widgets. Be sure to check out the <a href="http://ui.jquery.com/demos/">jQuery UI Demo</a> page, which showcases  some of the things you can accomplish using jQuery UI.<a href="http://ui.jquery.com/themeroller/"><img src="http://media2.smashingmagazine.com/images/javascript-tools-images/01_jqueryui.jpg" alt="jQuery UI - screen shot." width="500" height="319" /></a></li>
<li><a href="http://code.google.com/webtoolkit/overview.html">Google Web Toolkit</a><br />
The Google Web Toolkit (commonly referred to as GWT) is a framework for developing complex and fully featured AJAX-based Web applications. You write front-end code in Java that is later compiled into optimized and cross-browser-friendly JavaScript. GWT puts the focus on Web application development by reducing the need for testing and debugging JavaScript for browser quirks.</li>
<li><a href="http://jxlib.org/">Jx</a><br />
Jx is a JavaScript library for creating graphical user  interfaces written on top of the <a href="http://mootools.net/">MooTools</a> framework. Jx is distributed with an <a href="http://www.opensource.org/licenses/mit-license.php">MIT license</a> and is well documented. Numerous examples as well as thorough and well-organized API documentation is available on the website.<a href="http://jxlib.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/02_jx.jpg" alt="Jx - screen shto." width="500" height="239" /></a></li>
<li><a href="http://www.thefrontside.net/freestyle">Freestyle Webtop Toolkit</a><br />
Freestyle aims to reduce the complexity and time involved in deploying Web-based user interfaces by eliminating the separation of client-side and server-side development. With Freestyle, you focus on programming logic and UI design, and it handles the rest (i.e. cross-browser compatibility and DHTML and AJAX development).<a href="http://www.thefrontside.net/freestyle"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/03_freestyle.jpg" alt="Freestyle Webtop Toolkit - screen shot." width="356" height="170" /></a></li>
<li><a href="http://projects.nikhilk.net/ScriptSharp">Script#</a><br />
Script# is an AJAX and JavaScript authoring tool that allows developers to write in C#. It also allows .NET developers to leverage their existing knowledge and provides powerful tools associated with the .NET framework.<a href="http://projects.nikhilk.net/ScriptSharp"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/04_script.jpg" alt="Script# - screen shot." width="462" height="228" /></a></li>
<li><a href="http://www.aptana.com/jaxer/">Aptana Jaxer</a><br />
Aptana Jaxer is the first “AJAX server” that allows developers to use their AJAX, HTML, JavaScript and DOM knowledge to create fully featured server-side-powered Web applications. With Jaxer, you can even write database queries in JavaScript syntax. Jaxer integrates very well with popular JavaScript libraries such as jQuery, <a href="http://www.dojotoolkit.org/">Dojo</a> and <a href="http://extjs.com/">Ext  JS</a>.</li>
<li><a href="http://www.jslab.dk/tools.regex.php">JS Regex Generator</a><br />
JS Regex Generator helps JavaScript developers write <a href="http://en.wikipedia.org/wiki/Regular_expression">Regular Expressions</a> for matching strings of text. This is commonly done for text-format validation, such as when checking if inputted text has the correct date and email format.<a href="http://www.jslab.dk/tools.regex.php"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/05_js_regex_generator.jpg" alt="JS Regex Generator - screen shot." width="330" height="284" /></a></li>
<li><a href="http://www.wavemaker.com/">WaveMaker</a><br />
WaveMaker is open-source software for complete Web application development and deployment. You can find a host of demo applications built and deployed using WaveMaker on the <a href="http://www.wavemaker.com/product/demos.html">Demo Applications</a> page.<a href="http://www.wavemaker.com/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/06_wavemaker.jpg" alt="WaveMaker - screen shot." width="500" height="228" /></a></li>
</ul>
<h3>Documentation Tools</h3>
<ul>
<li><a href="http://code.google.com/p/jsdoc-toolkit/">JSDoc Toolkit</a><br />
JSDoc Toolkit makes code documentation a breeze. Written in JavaScript, it helps developers automatically generate templates for JavaScript comments. It’s a great tool for managing large-scale applications developed by teams of developers who have different coding styles.</li>
<li><a href="http://jgrouse.com/#jgdoc">jGrouseDoc</a><br />
jGrouseDoc is an open-source project distributed through <a href="http://code.google.com/p/jgrousedoc/">Google Code</a> under a modified BSD license. It lets  developers document and manage their code comments using a format similar to <a href="http://java.sun.com/j2se/javadoc/">Javadoc</a>’s.<a href="http://jgrouse.com/#jgdoc"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/07_jsgrouse.jpg" alt="jGrouseDoc - screen shot." width="354" height="253" /></a></li>
</ul>
<h3>JavaScript Debugging Tools</h3>
<ul>
<li><a href="http://getfirebug.com/">Firebug</a><br />
Firebug is an extremely popular and well-regarded front-end debugging tool. It has all the features you’d expect from a JavaScript debugging tool, such as the ability to set breakpoints in your code so that you can step through your script. For people developing outside of Mozilla-based browsers, check out <a href="http://getfirebug.com/lite.html">Firebug Lite</a>, which is a JavaScript library you can include in your Web pages to access  some of the features of Firebug.<a href="http://getfirebug.com/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/08_firebug.jpg" alt="Firebug - screen shot." width="470" height="269" /></a></li>
<li><a href="http://www.mozilla.org/projects/venkman/">Venkman  JavaScript Debugger</a><br />
Venkman is Mozilla’s JavaScript debugger and an add-on for Gecko-based browsers. Venkman is a robust and fully featured JavaScript debugging environment, with a host of useful features and options, such as code profiling to inspect your script’s performance.<a href="http://www.mozilla.org/projects/venkman/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/09_venkman.jpg" alt="Venkman JavaScript Debugger - screen shot." width="500" height="233" /></a></li>
<li><a href="http://webkit.org/blog/61/introducing-drosera/">Drosera</a><br />
Drosera is an excellent debugging tool for Safari and  WebKit-based browsers.<a href="http://webkit.org/blog/61/introducing-drosera/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/10_drosera.jpg" alt="Drosera - screen shot." width="274" height="344" /></a></li>
<li><a href="http://www.opera.com/dragonfly/">Opera Dragonfly</a><br />
Opera Dragonfly is a robust debugging environment for the Opera browser. Dragonfly allows you to view and inspect errors, debug your scripts and inspect and edit the DOM and CSS on the fly.</li>
<li><a href="http://www.nitobibug.com/">NitobiBug</a><br />
NitobiBug is a browser-based JavaScript object logger and inspector. It runs on numerous browsers, including IE, Safari, Opera and Firefox. It is a powerful tool in helping developers build rich interactive AJAX applications.</li>
<li><a href="http://www.debugbar.com/">DebugBar</a><br />
DebugBar is an in-browser front-end debugger for Internet Explorer. Much like its Firefox counterparts, it has a robust set of features, such as DOM, JavaScript and cookie inspection. Be sure to check out <a href="http://www.my-debugbar.com/wiki/CompanionJS/HomePage">Companion JS</a>,  which is a JavaScript debugging library to be used alongside DebugBar.<a href="http://www.debugbar.com/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/11_debugbar.jpg" alt="DebugBar - screen shot." width="489" height="284" /></a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">Internet  Explorer Developer Toolbar</a><br />
Similar to Firebug, IE Developer Toolbar is an in-browser tool to help you debug front-end code in Internet Explorer. It’s especially handy as a debugging and inspection alternative to Firefox when you’re developing and testing in IE.</li>
</ul>
<h3>JavaScript Testing and Validation Tools</h3>
<ul>
<li><a href="http://javascriptmvc.com/learningcenter/test/index.html">Test &#8211;  JavaScriptMVC</a><br />
Test is a JavaScriptMVC component for easily setting up automated unit testing for JavaScript code. It lets you effectively test for DOM events (such as a key press or form submission), thereby lessening development time, oversight and errors associated with manual testing.<a href="http://javascriptmvc.com/learningcenter/test/index.html"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/12_test.jpg" alt="Test - JavaScriptMVC - screen shot." width="450" height="171" /></a></li>
<li><a href="http://www.jsunit.net/">JsUnit</a><br />
JsUnit is a popular unit testing framework for JavaScript code. It’s a JavaScript port from another unit testing framework for Java called <a href="http://www.junit.org/">JUnit</a>. JsUnit allows you to write test cases and provides tools for automated code execution.</li>
<li><a href="http://jslint.com/">JSLint</a><br />
JSLint is a Web-based tool for verifying your JavaScript code for errors. It has a ton of features and settings that you can use to customize verification algorithms to suit your needs.<a href="http://jslint.com/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/12_jslint.jpg" alt="JSLint - screen shot." width="368" height="205" /></a></li>
<li><a href="http://www.thefrontside.net/crosscheck">Crosscheck</a><br />
Crosscheck is an open-source testing framework for JavaScript. Crosscheck is unique because it works independent of environment: you can run tests outside of a Web browser, which avoids discrepancies that occur when testing in various browsers.</li>
<li><a href="http://developer.yahoo.com/yui/yuitest/#start">YUI  Test</a><br />
YUI Test is a suite of testing utilities that’s part of the <a href="http://developer.yahoo.com/yui/">YUI library</a> developed by Yahoo!. It has numerous features, such as easy creation of test cases through an intuitive syntax, advanced failure detection and the ability to organize test cases by grouping them into test suites.<a href="http://developer.yahoo.com/yui/yuitest/#start"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/14_yui_test.jpg" alt="YUI Test - screen shot." width="436" height="169" /></a></li>
<li><a href="http://j3unit.sourceforge.net/">J3Unit</a><br />
J3Unit is an excellent object-oriented unit-testing framework for JavaScript. It gives you a host of options for writing automated test cases and has three modes: <a href="http://j3unit.sourceforge.net/#static">Static  Mode</a>, <a href="http://j3unit.sourceforge.net/#local">Local Browser Mode</a> and <a href="http://j3unit.sourceforge.net/#remote">Remote Browser Mode</a>.</li>
<li><a href="http://erik.eae.net/playground/regexp/regexp.html">Regular  Expression Tool</a><br />
The Regular Expression Tool is an online utility that allows you to test your RegEx code against a sample test. It’s a handy tool to have around when you want to quickly test the efficacy of your regular expressions in a variety of example texts.<a href="http://erik.eae.net/playground/regexp/regexp.html"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/15_regex_tool.jpg" alt="Regular Expression Tool - screen shot." width="458" height="251" /></a></li>
<li><a href="http://www.codeproject.com/KB/scripting/regex2.aspx">JavaScript  Regular Expression Tester</a><br />
This is another handy tool for testing regular expressions  within the Web browser.<a href="http://www.codeproject.com/KB/scripting/regex2.aspx"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/16_reg_ex_tester.jpg" alt="JavaScript Regular Expression Tester - screen shot." width="450" height="287" /></a></li>
<li><a href="http://broofa.com/Tools/JSLitmus/">JSLitmus</a><br />
JSLitmus is a lightweight tool for creating JavaScript  benchmarks and performance tests, using an intuitive API.<a href="http://broofa.com/Tools/JSLitmus/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/27_jslitmus.jpg" alt="JSLitmus - screen shot." width="283" height="251" /></a></li>
</ul>
<h3>Security Tools</h3>
<ul>
<li><a href="http://www.gnucitizen.org/blog/attackapi/">AttackAPI</a><br />
AttackAPI is a framework for writing test cases of potential  JavaScript exploits and vulnerabilities.</li>
<li><a href="http://code.google.com/p/jsfuzzer/">jsfuzzer</a><br />
jsfuzzer is a <a href="http://en.wikipedia.org/wiki/Fuzz_testing">fuzzing</a> tool to help you  write (and test for) attack vectors in JavaScript.</li>
</ul>
<h3>New and Alternative JavaScript and Ajax Development Frameworks</h3>
<ul>
<li><a href="http://clean-ajax.sourceforge.net/">Clean AJAX</a><br />
Clean AJAX  is an open-source framework for creating AJAX-based applications. Check  out the <a href="http://clean-ajax.sourceforge.net/index.php?tab=demos">demo  page</a> to see it in action.<a href="http://clean-ajax.sourceforge.net/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/17_cleanajax.jpg" alt="Clean AJAX - screen shot." width="409" height="115" /></a></li>
<li><a href="http://www.modernmethod.com/sajax/index.phtml">SAJAX</a><br />
SAJAX is an excellent toolkit for developing AJAX-based  applications. It supports PHP, Perl and Python.<a href="http://www.modernmethod.com/sajax/index.phtml"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/18_sajax.jpg" alt="SAJAX - screen shot." width="235" height="243" /></a></li>
<li><a href="http://javascriptmvc.com/">JavaScriptMVC</a><br />
JavaScriptMVC is a Web application framework based on the <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> software architectural pattern. It speeds up Web development processes and lays down best practices, maintainability and standards as principles in a project’s development.</li>
<li><a href="http://qooxdoo.org/">qooxdoo</a><br />
qooxdoo is a simple and intuitive AJAX application framework. Be sure to check  out the <a href="http://demo.qooxdoo.org/current/demobrowser/">Demo Browser</a>,  a Web-based application that allows you to view demos of qooxdoo at work.<a href="http://qooxdoo.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/19_qooxdoo.jpg" alt="qooxdoo - screen shot." width="500" height="251" /></a></li>
<li><a href="http://simplejs.bleebot.com/">SimpleJS</a><br />
SimpleJS is a small and lightweight JavaScript library that provides developers with useful JavaScript functions for working with AJAX.</li>
</ul>
<h3>Image Manipulation and Graphing</h3>
<ul>
<li><a href="http://cow.neondragon.net/stuff/reflection/">Reflection.js</a><br />
Reflection.js automatically adds reflections to your images  unobtrusively. Also check out <a href="http://www.netzgesta.de/instant/">instant.js</a>,  a similar script that adds an image border and tilts images on a Web page.<a href="http://cow.neondragon.net/stuff/reflection/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/20_reflectionjs.jpg" alt="Reflection.js - screen shot." width="500" height="251" /></a></li>
<li><a href="http://typeface.neocracy.org/">typeface.js</a><br />
typeface.js allows you to embed custom fonts on Web pages,  freeing you from having to create images for HTML text.</li>
<li><a href="http://www.liquidx.net/canvasgraphjs/">CanvasGraph.js</a><br />
CanvasGraph.js is a simple JavaScript library that lets you  construct bar, line and pie charts using HTML’s canvas element.<a href="http://www.liquidx.net/canvasgraphjs/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/21_canvas_graph.jpg" alt="CanvasGraph.js - screen shot." width="500" height="251" /></a></li>
<li><a href="http://code.google.com/p/flot/">flot</a><br />
flot is a JavaScript library for plotting data and has been  tested to work in most modern Web browsers.<a href="http://code.google.com/p/flot/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/22_flot.jpg" alt="flot - screen shot." width="500" height="251" /></a></li>
<li><a href="http://www.lutanho.net/diagram/">JavaScript Diagram Builder</a><br />
The JavaScript Diagram Builder is a JavaScript library that consists of a variety of objects and functions for constructing diagrams.<a href="http://www.lutanho.net/diagram/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/23_diagram_builder.jpg" alt="JavaScript Diagram Builder - screen shot." width="500" height="251" /></a></li>
<li><a href="http://www.dojotoolkit.org/2006/11/08/dojo-charting-engine-courtesy-greenplum-and-sitepen">The Dojo Charting Engine</a><br />
The Dojo Charting Engine is a robust utility for creating  components for data visualization, written on top of the <a href="http://www.dojotoolkit.org/">Dojo Toolkit</a>.</li>
</ul>
<h3>Useful Utilities and JavaScript Scripts</h3>
<ul>
<li><a href="http://ejohn.org/blog/processingjs/">Processing.js</a><br />
Processing.js is a JavaScript port of <a href="http://processing.org/">Processing</a>, the open-source data-visualization programming language. Check out <a href="http://blog.osmeusapontamentos.com/processing/dataVisualizationExamplesUsingProcessingJS.htm">examples  that use Processing.js</a>.</li>
<li><a href="http://code.google.com/apis/ajaxlibs/">AJAX  Libraries API</a><br />
Google’s AJAX Libraries API allows you to serve popular JavaScript libraries using its CDN, which reduces the server load on your website.</li>
<li><a href="https://damnit.jupiterit.com/">DamnIT</a><br />
DamnIT is an error-reporting service that allows you to gather feedback from beta testers after they’ve encountered a JavaScript error. This is perfect for live production testing and as a monitoring tool that helps you track errors and weak spots in your Web applications.</li>
<li><a href="http://code.google.com/p/ie7-js/">ie7-js</a><br />
ie7-js is a JavaScript library that forces Internet Explorer to behave like a standards-based browser (like Firefox or Opera). It automatically fixes IE browser quirks and deviations from Web standards, as in the case of its box model.</li>
<li><a href="http://www.appelsiini.net/projects/lazyload">Lazy  loader</a><br />
Lazy loader is a jQuery plug-in that delays the loading of images so that text content can load first, thereby making image-heavy pages load faster.</li>
</ul>
<h3>JavaScript Code Optimization and Minification Tools</h3>
<ul>
<li><a href="http://fmarcia.info/jsmin/test.html">JS Minifier</a><br />
JS Minifier is a Web-based tool for shrinking your JavaScript code  to make it as lightweight as possible.<a href="http://fmarcia.info/jsmin/test.html"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/24_js_minifier.jpg" alt="JS Minifier - screen shot." width="500" height="251" /></a></li>
<li><a href="http://www.crockford.com/javascript/jsmin.html">JSMIN</a><br />
JSMIN is a popular JavaScript minifier that removes unneeded characters (like spaces and tabs) and comments, thus reducing your script’s file size.</li>
<li><a href="http://developer.yahoo.com/yui/compressor/">YUI  Compressor</a><br />
The YUI Compressor is another well-regarded JavaScript code-optimization tool developed by Yahoo!.</li>
<li><a href="http://www.scriptalizer.com/">Scriptalizer</a><br />
Scriptalizer is a helpful online tool for combining  JavaScript files to reduce HTTP requests.<a href="http://www.scriptalizer.com/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/javascript-tools-images/25_scriptilizer.jpg" alt="Scriptalizer - screen shot." width="500" height="251" /></a></li>
<li><a href="http://dojotoolkit.org/docs/shrinksafe">ShrinkSafe</a><br />
ShrinkSafe is a compression tool that reduces  JavaScript file sizes.</li>
<li><a href="http://mootools.net/slickspeed/">SlickSpeed  Selectors Test</a><br />
SlickSpeed is a Web page for comparing the performance of the DOM object selection of various popular frameworks like MooTools and jQuery.<a href="http://mootools.net/slickspeed/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/javascript-tools-images/26_slickspeed.jpg" alt="SlickSpeed Selectors Test - screen shot." width="500" height="251" /></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.learningjquery.org/index.php/50-useful-javascript-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
