One of the first web tools to make use of AJAX was Google Suggest, the tool that tries to guess what you're searching for (and can sometimes crack you up) as you type. Google also makes heavy use of AJAX in its mail client, GMail, which in my experience may be the smoothest, yet most powerful web application out there right now. As I type this blog entry, it is being spelll checked (see what I did there?), which means that with every letter I type, some text is being processed for errors. All of these things are made possible, if not simply much easier, with AJAX. Here's my breakdown of AJAX in layman's terms, with some geekspeak mixed in because I won't be able to help it. Let's build the argument from the ground up, shall we?
The Web is all about clients (usually web browsers like IE, Firefox, and Chrome) that connect to servers (usually web servers that have their own domain names, like www.google.com). Since the beginning of the Web, the interaction has typically gone like this:
- Client makes request to server.
- Server retrieves content.
- Client downloads content from server.
You could chop the webpage into pieces and have some kind of "autorefresh" for one piece. You could use a server-side technology (ASP, PHP, JSP, etc.) to run things on the server when necessary, but this makes the web pages all-the-more complicated (for one thing, they're not HTML anymore) and it increases the demands on your server. You could ask your clients to install a plugin like Flash or Java to run your content, but then you've got version, OS, and pretty big security issues. Somethin's gotta give, right?
In walks AJAX. AJAX says that if we can afford to use a light client-side technology, one that certainly isn't without its security flaws but can be fairly constrained by your browser, then we can pass off some of the "client experience" to the browser itself. The same technology could also trigger updates to the web server based on the user's actions, even very tiny actions like typing. Additionally, what if those updates could be targeted to parts of a page instead of reloading the entire page every time an update is necessary? AJAX says that if these three things are available, then we can greatly improve the interaction between users and the web content they love so much. To review, we'd like to have:
- A lightweight client-side technology for speedy response to user actions
- A way to trigger server requests based on fine-grained user actions
- A way to load portions of web content
- Javascipt, a free-wheeling client-side programming language that can easily interact HTML and other web content
- The XMLHttpRequest object, which allows Javascript to request and receive specific pieces of text from a server
- The Document Object Model (DOM), an interface between Javascript and HTML content that allows Javascript to modify the contents of HTML tags on-the-fly
Like all computer-related technologies, there are interchangeable parts involved. It would be naive to think that HTML itself, Javascript, and either the DOM or XML APIs won't change over time - but the core ideas are necessary for the improved user experience that AJAX offers. Is there a reason to think that network requests will bypass the speed of local instructions? This is a different topic really, and I'll avoid the tangent, but how is any company going to deploy a usable web-based OS without relying heavily on client-side support?
So why am I so enthused about AJAX? I'm pumped because AJAX not only lets me provide better experiences to my users, but it also lets me engineer better websites. In remodeling my academic website recently, I wanted to add some structure to data such as publications. What if I have a BibTeX file with all of my citations and could just update that file and have the changes reflected on my "Publications" link? AJAX gives me the chance to do just that, which is exciting to a software engineering geek like myself. I can also use AJAX to load content dynamically, which was previously only reserved for database-driven sites. Sure, my users aren't creating the data, but I AM! Why shouldn't I be able to provide data in a very simple format and have it presented cleanly when my users want to see it? Such things just shouldn't require a database.
So the next time you're Google-ing and Google tries to out-guess you, take a second to think about the software engineer and the toolbox at his disposal that made such magic happen.
This comment has been removed by a blog administrator.
ReplyDeleteCool ideas! This post was presented with huge knowledge. Thanks for the good job to share this with us. Keep updating.
ReplyDeleteExcel Training in Chennai
Excel Advanced course
Pega Training in Chennai
Linux Training in Chennai
Job Openings in Chennai
Tableau Training in Chennai
Unix Training in Chennai
Oracle Training in Chennai
Soft Skills Training in Chennai
JMeter Training in Chennai
Excel Training in OMR
Amazing Post. keep update more information.
ReplyDeleteSelenium Training in Chennai
Selenium Training in Bangalore
Selenium Training in Coimbatore
Selenium Course in Bangalore
Best Selenium Training in Bangalore
Selenium training in marathahalli
Selenium training in Btm
Ethical Hacking Course in Bangalore
Tally Course in Chennai
This article shares a lot of good information.
ReplyDeleteuse of python programming
highest paying skills
why should i learn python
hadoop future scope
java interview questions for freshers
selenium interview questions and answers pdf download
This comment has been removed by the author.
ReplyDelete