<?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>Ankit Jain &#187; ajax</title>
	<atom:link href="http://ankitjain.info/ankit/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://ankitjain.info/ankit</link>
	<description>» It’s all about Ankit and Web! «</description>
	<lastBuildDate>Thu, 02 Jun 2011 16:54:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Let&#8217;s Digg into Google Maps</title>
		<link>http://ankitjain.info/ankit/2008/04/17/lets-hack-google-maps/</link>
		<comments>http://ankitjain.info/ankit/2008/04/17/lets-hack-google-maps/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 17:25:40 +0000</pubDate>
		<dc:creator>Ankit</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming/Code]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[how it works]]></category>

		<guid isPermaLink="false">http://ankitjain.info/ankit/2008/04/17/lets-hack-google-maps</guid>
		<description><![CDATA[The Web would not be so simpler and interactive without Ajax. This technology makes Web applications pleasant, interactive, quick responsive and light weight. Take any of the online map applications, no matter whether it is Yahoo Maps, Google Maps or Windows Live Local, and you will find awesome precession, cutting edge technology (beyond DHTML, XML [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align: justify">The Web would not be so simpler and interactive without Ajax. This technology makes Web applications pleasant, interactive, quick responsive and light weight. Take any of the online map applications, no matter whether it is Yahoo Maps, Google Maps or Windows Live Local, and you will find awesome precession, cutting edge technology (beyond DHTML, XML and JavaScript) well managed data. Being software developer, these always attract me and I want to understand the scene behind those best software architectures/implementations. Over the last few days I was studying (hacking) Google maps and wanted to see how it works? Here are my investigations.</p>
<p class="MsoNormal" style="text-align: justify"><strong>Tiles: </strong>The very first observation is &#8211; not whole map is fetched at once. Instead the entire map is divided into tiles and a series of Ajax requests are fired to retrieve some part of the actually map. As soon as a tile is fetched it is displayed at its position. Their position is <em>well calculated</em> no matter user drags the maps while requests are on the way. The benefit here is, the user interface remains responsive and it makes user eager to analyze an area of map as soon as it&#8217;s available.</p>
<p><center><a title="Pune Google Map - Slices" target="_blank" href="http://ankitjain.info/ankit/wp-content/Pune-Google-Map.jpg"> <img id="image104" alt="Pune-Google-Map.jpg" src="http://ankitjain.info/ankit/wp-content/Pune-Google-Map.thumbnail.jpg" /></a> </center> <span id="more-105"></span></p>
<p class="MsoNormal"><strong>Overlaying:</strong> The tiles can be considered basic unit of mapping applications. They are atomic and have minimal required information. The DHTML allows overlapping one tile (image) over another and makes development easier. Here is how.</p>
<p class="MsoNormal">For each type of data there exists an independent tile. The Ajax application retrieves these tiles and overlaps one above another. For example &#8211; the user requests to see map and satellite image together, and here is how the rendered image is showed.<br />
<center></p>
<table width="550" style="height: 542px">
<tr>
<td align="center"><img id="image106" alt="kh_pune.jpg" src="http://ankitjain.info/ankit/wp-content/kh_pune.jpg" /></td>
<td>+</td>
<td><img id="image107" alt="mt_pune.png" src="http://ankitjain.info/ankit/wp-content/mt_pune.png" /></td>
</tr>
<tr>
<td colspan="3">
<div align="center">||</div>
<div style="text-align: center"><img id="image108" alt="overlap_pune.JPG" src="http://ankitjain.info/ankit/wp-content/overlap_pune.JPG" /></div>
</td>
</tr>
</table>
<p></center></p>
<div align="left">
<p class="MsoNormal"><strong>Tiles are Independent:</strong> Each tile is an independent unit and its request can be customized from client browser itself. For example making a request of <a target="_blank" href="http://kh2.google.com/kh?n=415&#038;v=22&#038;hl=en&#038;t=trtssqrtqsqqtqq">http://kh2.google.com/kh?n=415&#038;v=22&#038;hl=en&#038;t=trtssqrtqsqqtqq</a>  returns -</p>
<p class="MsoNormal">
<div style="text-align: center"><img alt="kh_pune_22.jpg" id="image109" src="http://ankitjain.info/ankit/wp-content/kh_pune_22.jpg" /></div>
<p class="MsoNormal">This is a newer image. While the request for <a target="_blank" href="http://kh2.google.com/kh?n=415&#038;v=21&#038;hl=en&#038;t=trtssqrtqsqqtqq">http://kh2.google.com/kh?n=415&#038;v=21&#038;hl=en&#038;t=trtssqrtqsqqtqq</a> yields and older image for the same area.</p>
<p class="MsoNormal">
<div style="text-align: center"><img alt="kh_pune_21.jpg" id="image110" src="http://ankitjain.info/ankit/wp-content/kh_pune_21.jpg" /></div>
<p class="MsoNormal">Here the difference in the requests is of a single parameter &#8216;v&#8217; and as per my guess its &#8216;version&#8217;. The next parameter &#8216;t&#8217; seems a combination of zoom index, and the corner coordinates. For tiles of type map having some text, their language can be controlled using &#8216;hl=en&#8217;. Try using &#8216;hl=ru&#8217; and you can see difference. So, the JavaScript executing in the client&#8217;s browser has complete control over what to display.</p>
<p class="MsoNormal">
<p class="MsoNormal"><strong>Ajax:</strong> Probably this needs to be the first point I should discuss. Google Maps does not use XMLHttpRequest for making Ajax calls. Instead, they have used <a href="http://ajaxpatterns.org/IFrame_Call" target="_blank" >I-FRAME (iFrame) for preloading images</a>. When you use Firebug you won&#8217;t be also to trace any XMLHttpRequest calls. I think the reason for this would be the difficulty in using and image/jpeg response from XMLHttpRequest as an image object and display it in browser.</p>
<p class="MsoNormal">- ankit</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ankitjain.info/ankit/2008/04/17/lets-hack-google-maps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajax Tutorial Series</title>
		<link>http://ankitjain.info/ankit/2006/10/20/ajax-tutorial-series/</link>
		<comments>http://ankitjain.info/ankit/2006/10/20/ajax-tutorial-series/#comments</comments>
		<pubDate>Fri, 20 Oct 2006 06:18:54 +0000</pubDate>
		<dc:creator>Ankit</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutorial/Links]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[xmlHttpRequest]]></category>

		<guid isPermaLink="false">http://ankitjain.info/ankit/2006/10/20/ajax-tutorial-series</guid>
		<description><![CDATA[Want to learn Ajax from scratch? Here is a series of tutorials for you. Mastering Ajax, Part 7: Using XML in requests and responses Brett McLaughlin demonstrates how you can use XML as the data format for sending asynchronous requests. Mastering Ajax, Part 6: Build DOM-based Web applications Continue to explore how DOM programming fits [...]]]></description>
			<content:encoded><![CDATA[<p>Want to learn Ajax from scratch? Here is a series of tutorials for you.</p>
<table cellspacing="0" cellpadding="0" border="0" class="MsoNormalTable">
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro7.html">Mastering Ajax, Part 7: Using XML in requests and responses</a><br />
Brett McLaughlin demonstrates how you can use XML as the data format for sending asynchronous requests.</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro6/index.html">Mastering Ajax, Part 6: Build DOM-based Web applications</a><br />
Continue to explore how DOM programming fits into interactive Ajax applications as Brett  McLaughlin completes his trilogy of articles on DOM programming with a DOM application in practice.</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro5/index.html">Mastering Ajax, Part 5: Manipulate the DOM</a><br />
Last month Brett introduced the Document Object Model, whose elements work behind the scenes to define your Web pages. This month he dives even deeper into the DOM. Learn how to create, remove, and change the parts of a DOM tree, and take the next step toward updating your Web pages on the fly!</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro4/index.html">Mastering Ajax, Part 4: Exploiting DOM for Web response</a><br />
The great divide between programmers (who work with back-end applications) and Web programmers (who spend their time writing HTML, CSS, and JavaScript) is long standing. However, the Document Object Model (DOM) bridges the chasm and makes working with both XML on the back end and HTML on the front end possible and an effective tool. In this article, Brett McLaughlin introduces the Document Object Model, explains its use in Web pages, and starts to explore its usage from JavaScript.</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/index.html">Mastering Ajax, Part 3: Advanced requests and responses in Ajax</a><br />
For many Web developers, making simple requests and receiving simple responses is all they&#8217;ll ever need, but for developers who want to master Ajax, a complete understanding of HTTP status codes, ready states, and the XMLHttpRequest object is required. In this article, Brett McLaughlin will show you the different status codes and demonstrate how browsers handle each and he will showcase the lesser-used HTTP requests that you can make with Ajax.</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro2/index.html">Mastering Ajax, Part 2: Make asynchronous requests with JavaScript and Ajax</a><br />
Most Web applications use a request/response model that gets an entire HTML page from the server. The result is a back-and-forth that usually involves clicking a button, waiting for the server, clicking another button, and then waiting some more. With Ajax and the XMLHttpRequest object, you can use a request/response model that never leaves users waiting for a server to respond. In this article, Brett McLaughlin shows you how to create XMLHttpRequest instances in a cross-browser way, construct and send requests, and respond to the server.</td>
</tr>
<tr>
<td valign="top" style="padding: 0in; width: 100%"><a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-ajaxintro1.html">Mastering Ajax, Part 1: Introduction to Ajax</a><br />
Ajax, which consists of HTML, JavaScript, DHTML, and DOM, is an outstanding approach that helps you transform clunky Web interfaces into interactive Ajax applications. The author, an Ajax expert, demonstrates how these technologies work together &#8212; from an overview to a detailed look &#8212; to make extremely efficient Web development an easy reality. He also unveils the central concepts of Ajax, including the XMLHttpRequest object.</td>
</tr>
</table>
<p>~ Ankit</p>
<p>[Edited on March 20, 2007:</p>
<p>One more classsic tutorial for Ajax basics: <a target="_blank" href="http://www.harrymaugans.com/2007/03/18/tutorial-ajax-made-easy/">http://www.harrymaugans.com/2007/03/18/tutorial-ajax-made-easy/</a></p>
<p>]</p>
]]></content:encoded>
			<wfw:commentRss>http://ankitjain.info/ankit/2006/10/20/ajax-tutorial-series/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AJAX Guide !</title>
		<link>http://ankitjain.info/ankit/2006/07/31/ajax-guide/</link>
		<comments>http://ankitjain.info/ankit/2006/07/31/ajax-guide/#comments</comments>
		<pubDate>Mon, 31 Jul 2006 09:09:42 +0000</pubDate>
		<dc:creator>Ankit</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Tutorial/Links]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://ankitjain.info/ankit/2006/07/31/ajax-guide</guid>
		<description><![CDATA[Johnson compiles a useful list of Ajax resources. It contains resource for PHP/Java/ASP.net. [Edited: Oct 13th, 2006] And here we go to hack an Ajax website. Using &#8216;Firebug&#8217; (and extension to FireFox) you can discover ajax calls, stack trace of errors, etc; Using &#8216;chickenfoot&#8217; provides a programming environment within the browser (ie. simulation of user [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" title="Are you looking for AJAX Guide, Huh?" href="http://johnysmith.spaces.msn.com/Blog/cns!383F83B16A61FB36!511.entry">Johnson</a> compiles a useful list of Ajax resources. It contains resource for PHP/Java/ASP.net.</p>
<p><em>[Edited: Oct 13th, 2006]</em><br />
And here we go to hack an Ajax website.</p>
<ul>
<li>Using <a target="_blank" href="http://www.securityfocus.com/infocus/1879/1">&#8216;Firebug&#8217;</a> (and extension to FireFox) you can discover ajax calls, stack trace of errors, etc;</li>
<li>Using <a href="http://www.securityfocus.com/infocus/1879/2">&#8216;chickenfoot&#8217;</a> provides a programming environment within the browser (ie. simulation of user clicks, etc;)</li>
</ul>
<p>~ Ankit</p>
]]></content:encoded>
			<wfw:commentRss>http://ankitjain.info/ankit/2006/07/31/ajax-guide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

