A First Touch on AJAX
Side Note: First Draft on Apr 12 2011. I once had a chance to work part-time on AJAX web development during undergrad, but my friend and I quit half way. Recently, I had the chance to develop some simple AJAX pages, so it’s kind of first touch. ![]()
AJAX, stands for Asynchronous JavaScript and XML, is a group of popular technologies used in client-side web development for interactive applications. The main idea of AJAX is to retrieve data from server at the background and dynamically update the web page.
The advantage of this technique is it allows client web page to be updated partially without refreshing the entire page. Therefore, less data is exchanged between client and server, and the web application becomes more responsive.
One of the earliest example of AJAX is Google’s search keyword auto-completion. The web page is constantly sending the letters you typed into the search box back to Google servers, and Google’s backend servers will do the analysis and return a list of possible keywords. Then client side page will parse this data and do the auto-completion for you.
The difference between the traditional web application and AJAX application is as below,
Picture from interakt
The AJAX engine is nothing but some JavaScript downloaded from the web to the user’s browser.
In AJAX apps, data is usually retrieved using XMLHttpRequest object and JavaScript is written to parse the received data and dynamically change the website. XMLHttpRequest object was implemented as ActiveX object in IE and later on become a native JavaScript object in most browsers, including FireFox, Safari and Chrome.
A typical HTTP request using XMLHttpRequest looks like below,
http://127.0.0.1:8080/update.xml
GET /update.xml HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16) Gecko/20110323 Ubuntu/9.10 (karmic) Firefox/3.6.16
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://127.0.0.1:8080/update.html
And once the server returned the requested XML file with data, the JavaScript in the web page can parse it and update the web page. The data can be in other formats as well, for example, JSON.
The request and parsing can be simplified by using some JavaScript, for example, the popular JQuery library.
A typical JavaScript function using JQuery JavaScript library is as below,
function receiveServerData() {
$.ajax({
type: "GET",
url: "update.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('s').each(function() {
//further parsing the xml
}
}
});
}
This simple script will request for an xml file and then parse the xml file if it returns successfully.
Leave a Reply Cancel reply
40% Discount on My Book — Android NDK Cookbook
Android NDK Cookbook ebook 40% discount with promotion code MREANC40 at Packt Publishing The promotion code is valid until 15th June.Categories
- Android Apps (18)
- Android Audio Editor (1)
- TS 2 (3)
- Video Converter Android (8)
- Video2Gif (1)
- Android Tutorial (26)
- Android Dev Tools (1)
- API illustrated (8)
- Multimedia API (3)
- ffmpeg on Android (4)
- NDK (6)
- UI (5)
- Animation (1)
- Code Snippet (2)
- Coding Beyond Technique (18)
- a word, a world (4)
- Bug Rectified (4)
- Programming Habit (1)
- Software as a Career (1)
- Software as User Experience (1)
- Compilers and Related (2)
- ELF (2)
- Computer Languages (31)
- C/C++ (13)
- Java (9)
- JavaScript (2)
- PHP (1)
- Python (8)
- Data Structure & Algorithms (29)
- Bits (1)
- Data Structure (5)
- Integers (10)
- BigInteger (1)
- Prime (4)
- Search (3)
- Sorting (5)
- Strings (5)
- Database (1)
- SQLite (1)
- Digital Signal Processing (33)
- Distributed Systems (17)
- Apache Cassandra (6)
- Apache Hadoop (8)
- Apache Avro (3)
- Apache Nutch (3)
- Apache Solr (1)
- Linux Study Notes (40)
- crontab (1)
- Linux Kernel Programming (8)
- Linux Programming (12)
- IPC (2)
- Linux Network Programming (5)
- Linux Signals (2)
- Linux Shell Scripting (1)
- ssh (3)
- Machinery (30)
- misc (1)
- My Ideas (1)
- My Project (3)
- Mobile Caching (1)
- Selective Decoding (2)
- My Publication (1)
- My Readings (1)
- Networking (15)
- Program for Performance (8)
- Uncategorized (1)
- Virtual Machine (2)
- Web Dev (8)
- web components (3)
- Android Apps (18)
Recent Comments
Archives
- May 2013 (1)
- April 2013 (1)
- March 2013 (4)
- December 2012 (2)
- November 2012 (6)
- October 2012 (6)
- September 2012 (3)
- August 2012 (13)
- July 2012 (15)
- June 2012 (3)
- May 2012 (8)
- April 2012 (4)
- March 2012 (13)
- February 2012 (19)
- January 2012 (9)
- December 2011 (11)
- November 2011 (12)
- October 2011 (4)
- September 2011 (12)
- August 2011 (16)
- July 2011 (15)
- June 2011 (6)
- May 2011 (10)
- April 2011 (13)
- March 2011 (20)
- February 2011 (4)
- November 2010 (2)
- May 2010 (1)
- April 2010 (1)
- February 2010 (1)




