1.1 Asynchronous Javascript+XML+CSS (AJAX) 1. __Proposal__ [http://www.adaptivepath.com/publications/essays/archives/000385.php] 1. __Critique__ [http://blogs.msdn.com/dareobasanjo/archive/2005/03/22/400372.aspx] 1. 'People used this for many years, and then suddenly XML-RPC and SOAP were invented. XML-RPC and SOAP are complicated ways of executing remote procedure calls on remote hosts using a structured set of arguments, all performed over HTTP. Of course you'll notice HTTP can already do that on its own, it didn't need a new language. Other people noticed this too, but instead of saying "hey everyone, HTTP already does all this, just use HTTP", they said, "hey everyone, you should use REST!". REST is just a name that was coined for the kind of architecture on which HTTP is based, and, on the Web, simply refers to using HTTP requests. Several years ago, Microsoft invented XMLHttpRequest. People used it, along with JavaScript and XML. Google famously used it in some of their Web pages, for instance GMail. All was well, another day saved... then someone invented a new name for it: Ajax.' [http://ln.hixie.ch/?start=1111339822&count=1] 1. Inderjeet 'As I mentioned previously, AJAX is becoming more common in Web applications. However, currently it requires a lot of tedious Javascript programming and debugging. I expect that future releases will address that by providing components that will hide all that from developers through automatic support for AJAX and similar technologies.' [http://developers.sun.com/prodtech/javatools/jsenterprise/community/chats/april212005.html] 1. bpcatalog * 'Up until recently the technology was referred to as web remoting or remote scripting. Web developers have also used a combination of plugins, Java applets, and hidden frames to emulate this interaction model for some time. What has changed recently is that the inclusion of support for the XMLHttpRequest object has became ubiquitous in the mainstream browsers across all platforms. The real magic is the result of the JavaScript XMLHttpRequest object. While this object is not specified in the formal JavaScript specification, it is supported by all of the mainstream browsers today. While there are subtle differences with the JavaScript and CSS support among current generation browsers such as Firefox, IE and Safari, they are manageable. If you are required to support older browsers, AJAX may not be the answer for you.' * 'What makes AJAX-based clients unique is that the client contains page specific control logic embedded as JavaScript. The page interacts with the JavaScript based on events such as the document being loaded, a mouse click, focus changes, or even a timer. AJAX interactions allow for a clear separation of presentation logic from the data. An HTML page can pull in bite size pieces of data as needed versus reloading the whole page every time a change needs to be displayed. AJAX will require a different server-side architecture to support this interaction model. Traditionally, server-side web applications have focused on generating HTML documents for every client event resulting in a call to the server and the clients would refresh and re-render the complete HTML page for each response. Rich web applications focus on a client fetching an HTML document which acts as a template or container for injecting content into based on client events using XML data retrieved from a server-side component.' * AJAX Drawbacks ' drawbacks to this approach as well: Complexity: Server-side developers will need to understand that presentation logic will be required in the HTML client pages as well as in the server-side logic to generate the XML content needed by the client HTML pages. JavaScript skills are required for the HTML page developers. Over time it will become easier to create AJAX enabled applications as new frameworks are created and existing frameworks evolve to support the interaction model. Standardization of the XMLHttpRequest Object: The XMLHttpRequest is not yet a part of the JavaScript specification which means that the behavior may vary depending on the client. JavaScript Implementations: AJAX interactions depend heavily on JavaScript which has subtle differences depending on the client (see QuirksMode.org for more details on browser specific differences. Debugging: AJAX applications are also difficult to debug because the processing logic is both embedded in the client and on the server. Viewable Source: The client side JavaScript may be viewed by the client by simply selecting "View Source" form an AJAX enabled HTML page. A poorly designed AJAX based application could open itself up to hackers or plagarism.' 1.1 Browser Incompatibilities [http://www.quirksmode.org/] 1.1 [http://jszen.blogspot.com/2005/05/ajaxed-out.html] 1.1 [http://blogs.sun.com/roller/page/geertjan/] [https://bpcatalog.dev.java.net/nonav/ajax/index.html]