<?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>Zend Framework Blog &#187; JavaScript and AJAX</title>
	<atom:link href="http://blog.richardknop.com/category/javascript-and-ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.richardknop.com</link>
	<description>Zend Framework, PHP, Django, Python, SQL, MySQL, PostgreSQL, Oracle, PL/SQL, data model patterns, OOP, design patterns, JavaScript, jQuery, HTML, XHTML, CSS, XML, web services &#38; APIs, Security, E-commerce and much more</description>
	<lastBuildDate>Sat, 04 Feb 2012 19:47:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Interesting jQuery toggling of a loading gif</title>
		<link>http://blog.richardknop.com/2011/09/interesting-jquery-toggling-of-a-loading-gif/</link>
		<comments>http://blog.richardknop.com/2011/09/interesting-jquery-toggling-of-a-loading-gif/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 15:09:41 +0000</pubDate>
		<dc:creator>Richard Knop</dc:creator>
				<category><![CDATA[JavaScript and AJAX]]></category>
		<category><![CDATA[jquery ajax loading gif]]></category>

		<guid isPermaLink="false">http://blog.richardknop.com/?p=661</guid>
		<description><![CDATA[This is an interesting way to hide/show an AJAX loading gif image. Once an ajax request starts, the div containing the loading image shows up, once the request is done, the div is hidden again. I saw this on Stack Overflow and found it pretty: $&#40;&#39;#ajax_loading_div&#39;&#41; .hide&#40;&#41;  // hide it initially .ajaxStart&#40;function&#40;&#41; &#123; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>This is an interesting way to hide/show an AJAX loading gif image. Once an ajax request starts, the div containing the loading image shows up, once the request is done, the div is hidden again. I saw this on Stack Overflow and found it pretty:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span><span class="st0">&#39;#ajax_loading_div&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>  <span class="co1">// hide it initially</span></div>
</li>
<li class="li1">
<div class="de1">.<span class="me1">ajaxStart</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">// show it when an AJAX request starts</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">.<span class="me1">ajaxStop</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">// hide it when an AJAX request ends</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.richardknop.com/2011/09/interesting-jquery-toggling-of-a-loading-gif/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery autosave on click event</title>
		<link>http://blog.richardknop.com/2009/09/jquery-autosave-on-click-event/</link>
		<comments>http://blog.richardknop.com/2009/09/jquery-autosave-on-click-event/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 19:54:28 +0000</pubDate>
		<dc:creator>Richard Knop</dc:creator>
				<category><![CDATA[JavaScript and AJAX]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.richardknop.com/?p=460</guid>
		<description><![CDATA[What does this simple jQuery snippet do? When you click on the link with class &#8220;autosave&#8221;, the form with id &#8220;autosave&#8221; is submitted via POST request to the same page. After that it redirects to the actual target of the link (href attribute). $&#40;document&#41;.ready&#40;function&#40;&#41; &#123; &#160; &#160; $&#40;&#39;a.autosave&#39;&#41;.click&#40;function&#40;&#41; &#123; &#160; &#160; &#160; &#160; // get [...]]]></description>
			<content:encoded><![CDATA[<p>What does this simple jQuery snippet do? When you click on the link with class &#8220;autosave&#8221;, the form with id &#8220;autosave&#8221; is submitted via POST request to the same page. After that it redirects to the actual target of the link (href attribute).</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#39;a.autosave&#39;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// get relative address of the current window/tab</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> url = window.<span class="me1">location</span>.<span class="me1">pathname</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// collect the data from the form with id &quot;autosave-form&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $postData = $<span class="br0">&#40;</span><span class="st0">&#39;form#autosave&#39;</span><span class="br0">&#41;</span>.<span class="me1">serialize</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// submit the form</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">post</span><span class="br0">&#40;</span>url, $postData, <span class="kw2">function</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// after the ajax request is successful, redirect to the link target</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.<span class="me1">location</span>.<span class="me1">href</span> = $<span class="br0">&#40;</span><span class="st0">&#39;#autosave&#39;</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#39;href&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// prevent default behavior</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>This can be useful in numerous situations. For example, on the page where user can edit his/her profile, you want to have a link saying something like &#8220;view my profile&#8221;. But you don&#8217;t want less experienced users to click on the link and lose all changes they have made to their profile (which happens quite a lot).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.richardknop.com/2009/09/jquery-autosave-on-click-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing your own JavaScript without frameworks</title>
		<link>http://blog.richardknop.com/2009/06/writing-your-own-javascript-without-frameworks/</link>
		<comments>http://blog.richardknop.com/2009/06/writing-your-own-javascript-without-frameworks/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 16:58:22 +0000</pubDate>
		<dc:creator>Richard Knop</dc:creator>
				<category><![CDATA[JavaScript and AJAX]]></category>

		<guid isPermaLink="false">http://blog.richardknop.com/?p=296</guid>
		<description><![CDATA[Most people today aren&#8217;t really writing their own JavaScript, they are just using frameworks such as jQuery, Dojo or YUI. I&#8217;ve been doing the same thing for a long time but I have decided it is the time to learn how to write my own JavaScript during this summer. I bought a book from John [...]]]></description>
			<content:encoded><![CDATA[<p>Most people today aren&#8217;t really writing their own JavaScript, they are just using frameworks such as jQuery, Dojo or YUI. I&#8217;ve been doing the same thing for a long time but I have decided it is the time to learn how to write my own JavaScript during this summer. I bought a book from <a href="http://ejohn.org/">John Resig</a> and have already dived into it.</p>
<p>I&#8217;m a long time PHP developer and I understand the principles of OOP so I thought it would be quite easy to just apply them in another object oriented language. It turned out to be a little more difficult than I thought initially.</p>
<p>A major difference between PHP (and other server side languages such as Python or Ruby) and JavaScript is that there are no classes. You are working directly with objects all the time. Everything in JavaScript is an object: variables, functions etc. Every part of a webpage is represented as an object in the DOM, too.</p>
<p>So how to create an object when there are no classes? You can create an object in JavaScript by defining a constructor. For example, let&#8217;s create a Car object:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// create the Car object by defining its constructor</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> Car<span class="br0">&#40;</span>brand, model<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">brand</span> = brand;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">model</span> = model;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>As you can see, &#8216;this&#8217; keyword works similarly as in C# or as &#8216;$this&#8217; in PHP &#8211; it points to a current object. You can add methods and properties to the object through its prototype:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// add few methods to the Car prototype</span></div>
</li>
<li class="li1">
<div class="de1">Car.<span class="me1">prototype</span>.<span class="me1">getBrand</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span>.<span class="me1">brand</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">Car.<span class="me1">prototype</span>.<span class="me1">getModel</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span>.<span class="me1">model</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>By adding a method to Car&#8217;s prototype all Car objects will have access to it.</p>
<p>One more big difference between PHP and JavaScript is inheritance. In PHP, an object can extend (be derived from) another object (or interface). You define the inheritance in class definitions. In JavaScript, the inheritance is achieved through prototypes:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// create an AudiA6 object by defining its constructor</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> AudiA6<span class="br0">&#40;</span>color<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">// call Car&#39;s constructor on this object with &#39;Audi&#39;, &#39;A6&#39; arguments</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Car.<span class="me1">call</span><span class="br0">&#40;</span><span class="kw1">this</span>, <span class="st0">&#39;Audi&#39;</span>, <span class="st0">&#39;A6&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">color</span> = color;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// AudiA6 inherits all methods of the Car</span></div>
</li>
<li class="li1">
<div class="de1">AudiA6.<span class="me1">prototype</span> = <span class="kw2">new</span> Car<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// add a getColor() method to the AudiA6</span></div>
</li>
<li class="li1">
<div class="de1">AudiA6.<span class="me1">prototype</span>.<span class="me1">getColor</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span>.<span class="me1">color</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>The getColor() method is available only to AudiA6 objects:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> car = <span class="kw2">new</span> Car<span class="br0">&#40;</span><span class="st0">&#39;Skoda&#39;</span>, <span class="st0">&#39;Fabia&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> audiA6 = <span class="kw2">new</span> AudiA6<span class="br0">&#40;</span><span class="st0">&#39;blue&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">alert</span><span class="br0">&#40;</span>audiA6.<span class="me1">getColor</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">alert</span><span class="br0">&#40;</span>car.<span class="me1">getColor</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="co1">// returns null</span></div>
</li>
</ol>
</div>
<p>That&#8217;s it for today. I will write few more articles about JavaScript and also AJAX later in the summer as I progress through John Resig&#8217;s book <img src='http://blog.richardknop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.richardknop.com/2009/06/writing-your-own-javascript-without-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

