{"id":177,"date":"2010-02-17T08:12:33","date_gmt":"2010-02-16T22:12:33","guid":{"rendered":"http:\/\/www.desiderata.com.au\/blog\/?page_id=177"},"modified":"2011-05-14T15:38:38","modified_gmt":"2011-05-14T05:38:38","slug":"ajax-and-web-20-development","status":"publish","type":"page","link":"http:\/\/www.desiderata.com.au\/blog\/?page_id=177","title":{"rendered":"AJAX and Web 2.0 development"},"content":{"rendered":"<p>Overview:<\/p>\n<p>Before AJAX in ~2005, web designers were not able to come anywhere near the user experience that a native Win32 application such as those written in Delphi (Microsoft no longer provides native Win32 application development software, only .NET development) could provide.<\/p>\n<p>AJAX is a combination of technologies which work together to provide\u00a0 a much more responsive and rich user experience in web applications than ever before using asynchronous server communication. Although AJAX is still not as responsive nor rich as a native Win32 app, but at least it will run on most platforms including Apple iPhone and iPad, and it is NOT dependent on any .NET technology or Flash technology (which will not run on Apple iPad browsers).<\/p>\n<p><strong>Examples of AJAX Web 2.0 include:<\/strong><\/p>\n<ul>\n<li>Google Maps<\/li>\n<li>Google Suggest<\/li>\n<\/ul>\n<p><strong>The technologies that form the basis of AJAX are:<\/strong><\/p>\n<ul>\n<li>standards based presentation using<strong> XHTML<\/strong> and <strong>CSS<\/strong><\/li>\n<li>dynamic display and interaction using the <strong>Document Object Model (DOM)<\/strong><\/li>\n<li>data interchange and manipulation using <strong>XML<\/strong> and <strong>XSLT <\/strong>(or the more efficient <strong>JSON<\/strong> data format)<strong><br \/>\n<\/strong><\/li>\n<li>asynchronous data retrieval using <strong>XMLHttpRequest<\/strong><\/li>\n<li><strong>JavaScript<\/strong> to bind it all together<\/li>\n<\/ul>\n<p>Essentially an extra layer is added to the architecture &#8211; an <strong>AJAX engine<\/strong> which handles JavaScript calls from a client, sends a httpXML request to the web server which sends back data (usually as XML) which the AJAX engine then sends back to the client as HTML data formatted with CSS.<\/p>\n<p><strong>Although AJAX does make the experience more responsive, it does have it&#8217;s downsides, including:<\/strong><\/p>\n<ul>\n<li>web pages are dynamically generated and thus search engines will not access the content, and the user will not be able to bookmark a particular view, nor will hitting back give the previous view but perhaps the initial entry point.<\/li>\n<\/ul>\n<p><strong>More information on AJAX:<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.adaptivepath.com\/ideas\/essays\/archives\/000385.php\">Jesse James Garrett&#8217;s introduction<\/a><\/li>\n<\/ul>\n<p><strong>Development options for Windows Web Servers:<\/strong><\/p>\n<ul>\n<li><strong>ASP.NET: <\/strong>\n<ul>\n<li>Microsoft<\/li>\n<\/ul>\n<\/li>\n<li><strong>Delphi Win32 and AJAX: <\/strong>\n<ul>\n<li><a href=\"http:\/\/ajax.marcocantu.com\/\">Marco Cantu&#8217;s AJAX website<\/a><\/li>\n<li>Marco Cantu&#8217;s videos:\n<ul>\n<li>\n<ul>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=Hhq8oTb7dc8&amp;feature=related\">real time update of a Google docs spreadsheet using Delphi<\/a><\/li>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=VoANe6ZwMjI&amp;feature=related\">accessing Google maps and Yahoo maps<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Development options for<\/strong><strong> Linux Web Servers:<\/strong><\/p>\n<ul>\n<li><strong>NetBeans: <\/strong>\n<ul>\n<li>website<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ruby on Rails: <\/strong>\n<ul>\n<li>website<\/li>\n<\/ul>\n<\/li>\n<li><strong>PHP <\/strong>\n<ul>\n<li>website<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>AJAX libraries and other tools:<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.ajaxtoolbox.com\/\">AJAXToolbox<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Overview: Before AJAX in ~2005, web designers were not able to come anywhere near the user experience that a native Win32 application such as those written in Delphi (Microsoft no longer provides native Win32 application development software, only .NET development) &hellip; <a href=\"http:\/\/www.desiderata.com.au\/blog\/?page_id=177\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-177","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/pages\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=177"}],"version-history":[{"count":9,"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/pages\/177\/revisions"}],"predecessor-version":[{"id":179,"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=\/wp\/v2\/pages\/177\/revisions\/179"}],"wp:attachment":[{"href":"http:\/\/www.desiderata.com.au\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}