220 likes | 330 Views
AJAX (Asynchronous JavaScript and XML) is a technique used to dynamically update web pages by making asynchronous requests without refreshing the entire page. It employs objects like XMLHttpRequest to send and receive data, often utilizing JSON for responses. REST (Representational State Transfer), in contrast, is an architectural style for exchanging data between clients and servers over HTTP, typically using URLs for requests. This guide covers the essential mechanics of AJAX, the role of various frameworks, the use of RESTful APIs, and the advantages of using jQuery for simplicity in AJAX operations.
E N D
What is AJAX? • It’s an acronym for Asynchronous JavaScript and XML • Although requests need not be asynchronous • It’s not really a single technology but several • HTML / CSS / DOM / XML • It’s used to dynamically update Web pages • or at least parts of them
What is AJAX? • It uses the HTTPRequest and HTTPResponse objects to • Make a server request from client JavaScript • And process the server-side response
AJAX (model) From W3Schools.com
AJAX Frameworks • Most vendors have their own AJAX abstraction layers • ASP has a script manager and an AJAX toolkit • It’s a layer on top of AJAX • There are several for PHP • Phery, CJAX, Quicknet • There are frameworks for Python, Perl, Ruby and others
RestFull APIs • These are generally available API that accept and execute AJAX requests • Yahoo has YQL • SQL-like queries are built into the URL (GET request) • I’ll show this in class
RestFull APIS • Google has a number of APIs • These use JSON typically • JSON is an alternative to moving the responses around as XML
AJAX (The Mechanics) • The XMLHttpRequest object is used to create a request • The request gets configured with the open method • The request gets sent with the send method • The responseText and responseXML properties store the returned information • Use the onreadystatechange event for async requests
AJAX XMLHttpRequest • The following creates the request • varreq = new XMLHttpRequest(); • The open method define the type of request • The first argument contains the method to use (GET or POST) • The second argument contains the URL • The third argument contains true (asynchronous) or false (synchronous) • The send method sends the request to the server
AJAX XMLHttpRequest (Example) • Create open and send a synchronous request
AJAX Response (Synchronous) • When the request completes, we get at the response through the following properties of the XMLHttpRequest object • responseText – gets the response data as a string • responseXML gets the response data as XML, which we can then parse using the DOM • This is the same DOM we talked about
AJAX Response (Asynchronous) • The onreadystatechanged event fires as the request progresses • Initialize • Loading • Loaded • Interactive • Completed • Status and status contain the result status information • 404 – not found / 200 success
AJAX (jQuery) • As usual, jQuery makes the process simple
A Few Words about XML • It’s the extensible markup language • Data is frequently stored and transported as XML • It looks like XHTML 5 • Tags, attributes and elements • Nesting concepts are the same • However the tag and attribute names can be any valid name • .NET knows about them
A Few Words about XML • Sample XML document
REST • Acronym for Representational State Transfer • REST (restful Web services) is a way of exchanging HTTP requests and responses between client and server • It’s an alternative to Web Services and SOAP • It’s an alternative to Remote Procedure Calls (RPC)
REST • For read requests we • Send all data to the server via a URL and GET request • URLs are a logical location, rather than a physical resource • Data is typically returned as XML • It’s not a standard but a way of doing things • An architecture of style • YQL is restful
A Few Words about YQL • Yahoo Query Language • Implemented as a Web service, they maintain a number of tables • Finance • Geography and many more http://developer.yahoo.com/yql/guide/yql-opentables-chapter.html#
AJAX (References) • http://w3schools.com/ajax/default.asp • http://msdn.microsoft.com/en-us/library/bb924552.aspxhttp://developer.yahoo.com/yql/
HTML 5 • http://www.ibm.com/developerworks/library/x-html5/