AJAX

Ajax (programming)

Ajax (shorthand for asynchronous JavaScript and XML) is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. The use of Ajax techniques has led to an increase in interactive or dynamic interfaces on web pages. Data are usually retrieved using the XMLHttpRequest object. Despite the name, the use of XML is not actually required, nor do the requests need to be asynchronous.

Like DHTML and LAMP, Ajax is not a technology in itself, but a group of technologies. Ajax uses a combination of HTML and CSS to mark up and style information. The DOM is accessed with JavaScript to dynamically display, and to allow the user to interact with, the information presented. JavaScript and the XMLHttpRequest object provide a method for exchanging data asynchronously between browser and server to avoid full page reloads.

History

In the 1990s, web browsers and web sites lacked the sophistication to provide a quick and responsive user experience. Online form entry could be tedious, since all the requested information had to be entered and then submitted to the web server. The form data was validated and if there were problems, the same form was again presented to the user. The flow of information and the resulting experience was choppy and disconnected, reflecting the stateless nature of HTTP.

Asynchronous loading of content really became practical when Java applets were introduced in the first version of the Java language in 1995. These allow compiled client-side code to load data asynchronously from the web server after a web page is loaded. In 1996, Internet Explorer introduced the IFrame element to HTML, which also enables this to be achieved. In 1999, Microsoft created the XMLHTTP ActiveX control in Internet Explorer 5, which is now supported by Mozilla, Safari, Opera and other browsers as the native XMLHttpRequest object. The utility of background HTTP requests to the server and asynchronous web technologies remained fairly obscure until Google made a wide deployment of Ajax with Gmail (2004) and Google Maps (2005).

The term “Ajax” was coined in 2005.[1] Jesse James Garrett thought of the term “Ajax” while in the shower, when he realized the need for a shorthand term to represent the suite of technologies he was proposing to a client.

On April 5, 2006 the World Wide Web Consortium (W3C) released the first draft specification for the object in an attempt to create an official web standard.

Technologies

The term Ajax has come to represent a broad group of web technologies that can be used to implement a web application that communicates with a server in the background, without interfering with the current state of the page. In the article that coined the term Ajax, Jesse James Garrett explained that the following technologies are required:

Since then, however, there have been a number of developments in the technologies used in an Ajax application, and the definition of the term Ajax. In particular, it has been noted that:

  • JavaScript is not the only client-side scripting language that can be used for implementing an Ajax application. Other languages such as VBScript are also capable of the required functionality. However JavaScript is the most popular language for Ajax programming due to its inclusion in and compatibility with the majority of modern web browsers.
  • XML is not required for data interchange and therefore XSLT is not required for the manipulation of data. JavaScript Object Notation (JSON) is often used as an alternative format for data interchange, although other formats such as preformatted HTML or plain text can also be used.

Classic Ajax involves writing ad hoc JavaScript on the client. A simpler if cruder alternative is to use standard JavaScript libraries that can partially update a page, such as ASP.Net’s UpdatePanel. Tools such as Echo2 and ZK enable fine grained control of a page from the server, using only standard JavaScript libraries.

Rationale

  • In many cases, related pages on a website consist of much content that is common between them. Using traditional methods, that content would have to be reloaded on every request. However, using Ajax, a web application can request only the content that needs to be updated, thus drastically reducing bandwidth usage and load time.
  • The use of asynchronous requests allows the client’s Web browser UI to be more interactive and to respond quickly to inputs, and sections of pages can also be reloaded individually. Users may perceive the application to be faster or more responsive, even if the application has not changed on the server side.
  • The use of Ajax can reduce connections to the server, since scripts and style sheets only have to be requested once.
  • State can be maintained throughout a Web site. JavaScript variables will persist because the main container page need not be reloaded.

Drawbacks

  • Owing to their dynamic nature, Ajax interfaces are often harder to develop when compared to static pages.
  • Pages dynamically created using successive Ajax requests do not automatically register themselves with the browser’s history engine, so clicking the browser’s “back” button may not return the user to an earlier state of the Ajax-enabled page, but may instead return them to the last full page visited before it. Workarounds include the use of invisible IFrames to trigger changes in the browser’s history and changing the anchor portion of the URL (following a #) when Ajax is run and monitoring it for changes.
  • Dynamic web page updates also make it difficult for a user to bookmark a particular state of the application. Solutions to this problem exist, many of which use the URL fragment identifier (the portion of a URL after the ‘#’) to keep track of, and allow users to return to, the application in a given state.
  • Because most web crawlers do not execute JavaScript code, publicly indexable web applications should provide an alternative means of accessing the content that would normally be retrieved with Ajax, to allow search engines to index it.
  • Any user whose browser does not support JavaScript or XMLHttpRequest, or simply has this functionality disabled, will not be able to properly use pages which depend on Ajax. Similarly, devices such as mobile phones, PDAs, and screen readers may not have support for the required technologies. Screen readers that are able to use Ajax may still not be able to properly read the dynamically generated content. The only way to let the user carry out functionality is to fall back to non-JavaScript methods. This can be achieved by making sure links and forms can be resolved properly and do not rely solely on Ajax. In JavaScript, form submission could then be halted with “return false”.
  • The same origin policy prevents some Ajax techniques from being used across domains, although the W3C has a draft of the XMLHttpRequest object that would enable this functionality.
  • Like other web technologies, Ajax has its own set of vulnerabilities that developers must address. Developers familiar with other web technologies may have to learn new testing and coding methods to write secure Ajax applications.
  • Ajax-powered interfaces may dramatically increase the number of user-generated requests to web servers and their back-ends (databases, or other). This can lead to longer response times and/or additional hardware needs.

78 Responses to AJAX

  1. facebook says:

    facebook…

    I like this specific post,I guess that that they having fun to learn this publish,they should take a very good site to create a information,many thanks for sharing this to me….

  2. complex 41 says:

    complex 41…

    Great articles & Nice a site.. Hey very nice blog!!…

  3. organizasyon says:

    organizasyon…

    What made you think about such a topic….

  4. Gaziantep Oto Kiralama…

    In any case I’ll be subscribing to your feed and I hope you write again soon!…

  5. film izle says:

    film izle…

    Great post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!…

  6. Kendinizi Evinizde…

    I am glad to read about someone else’s opinion. I completely agree and I look forward to seeing more of this content in the future….

  7. sosyal bilgiler test…

    this was a very entertaining read. i enjoyed it very much!…

  8. cinsel sohbet…

    Thanks for the info. I appreciated all these Post….

  9. orjin krem says:

    orjin krem…

    I be able to get that kind of information information. friend, and exactly…….

  10. pembe maske says:

    pembe maske…

    In my opinion its good that severe penalties given for doctors violating the law….

  11. The next time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read

  12. You guys have a good web site proceeding the following, KIU!…

  13. auto parts says:

    Hello…

    Nice share. I think your page should come up much higher in the search results than where it is showing up right now….

  14. Chloe Bag says:

    That’s some inspirational stuff. By no means knew that opinions could possibly be this varied. Thanks for all the enthusiasm to offer you such useful information here….

  15. Incredibly regularly I go to this web site. It really a lot is pleasant to me. Thanks the author!…

  16. video phone says:

    Life goes on…

    In three words I can explain everything I have learned about life: It goes on….

  17. many thanks for discussing the information…..

  18. valuable post…

    You got a really useful blog I have been here reading for about half an hour. I am a newbie and your post is valuable for me….

  19. Gucci bags says:

    That is definately a single from the ideal blogs I’ve sen in ages online. Retain up the wonderful posts….

  20. video call says:

    Hello…

    Nice writing. I belive your blog should come up much higher in the search results than where it is showing up right now….

  21. video call says:

    Life goes on…

    In three words I can sum up all I know about life: It goes on….

  22. Chanel boots says:

    Okay posting. I simply discovered your web site and wished to say I have really enjoyed reading your opinions. By any implies I’ll be subscribing for a feed and I definitely hope you post again soon….

  23. Tiffanys says:

    It is a excellent stage!…

  24. Cheers for this post, guys, keep up the wonderful function….

  25. valuable post…

    You got a really great blog I have been here reading for about half an hour. I am a newbie and your post is valuable for me….

  26. Hello…

    Nice writing. I think your blog should come up much higher in the search results than where it is showing up right now….

  27. Hello…

    Nice share. I think your blog should come up much higher in the search results than where it is showing up right now….

  28. This is my problem…

    Superb webpage, I like how your page looks! The layout is great!…

  29. Chanel bags says:

    Great publish! I’ll subscribe right now wth my feedreader software!…

  30. Chanel shoes says:

    Initial issue , A big thanks for you to open my eyes….

  31. This is my problem…

    Superb webpage, I like how your page looks! The layout is amazing!…

  32. Gucci purses says:

    Okay article. I simply found out your blog and wished to say I’ve definitely enjoyed reading through your thoughts. By any suggests I’ll be subscribing for a feed and I actually hope you submit yet again quickly….

  33. Gucci outlet says:

    This is genuinely excellent news. Thank you for discussing it with us!…

  34. This is definately a single in the finest blogs I’ve sen in ages on the net. Retain up the fantastic posts….

  35. This is genuinely fantastic news. Thank you for sharing it with us!…

  36. Moncler says:

    Yes, thank for the info a million! Need to find anyone organizing Tea Party. I would like to participate in organizing….

  37. I admire the beneficial info you offer within your articles. I’ll bookmark your weblog and have my children examine up below typically. I’m quite confident they will discover a lot of new stuff right here than anybody else!…

  38. gas blower says:

    Cheers for this post, guys, retain up the great work….

  39. If you are willing to buy a house, you will have to receive the loan. Moreover, my sister usually utilizes a credit loan, which supposes to be really rapid.

  40. I saw this actually great post today!…

  41. Excellent weblog, thank you a great deal for your amazing posts!…

  42. atomic watch says:

    I saw this genuinely great post today!…

  43. This can be actually great news. Thank you for discussing it with us!…

  44. Funny, I used to be discussing this point with my older sister the other day, now I’ll have one far more argument in my hand when it’ll appear to confrontation once yet again….

  45. wonderful advice and sharing,I will get this wonderful for me .thanks!…

  46. Your stage is valueble for me. Thanks!…

  47. Whats up! Can possibly I move your information in Pdf file formatting? I will be required it in my job.

  48. website content? Is almost certainly this method under creative commons?

  49. great guidance and discussing,I will get this wonderful for me .thank you!…

  50. Nice blog and really useful! Have a nice day! Thanks! Joomla cPanel

  51. Thank you! I really appreciate your article, in fact I think you deserve a thumbs up.

  52. Well, really happy to read this article, I have bookmarked your website and will turn back to read your new articles.

  53. I’m serious in paying for hyperlink on this web. If you please get in touch with me with the rates. Thanks a lot.

  54. Hi. I’m interested in placing advertisement on this situation web site. I cannot discover the contact post so right here I’m.

  55. What’s the sharing? Might be this in creative commons?

  56. First visit to your website! Feel very comfortable, you write a good article, hope you can continue to

  57. That’s some inspirational things. By no means knew that opinions could be this varied. Many thanks for all the enthusiasm to offer you such valuable details here….

  58. Hello could I quote some of the material here in this entry if I reference you with a link back to your site?

  59. Hello webmaster, If I can use some of the information from this post, I’ll provide a link back to your website.

  60. shares utilize a good web-site decent Gives cheers for the working hard to help out people

  61. thanks to your ideas , i¡¯d adore to adhere to your weblog as usually as i can.possess a good day

  62. World Travel says:

    You can count me in for a Digg. Thanks for posting this on your site!

  63. thanks to your ideas , i¡¯d adore to adhere to your weblog as usually as i can.possess a good day

  64. Evan Aunkst says:

    Great blog post.Really looking forward to read more.

  65. Great blog post.Really looking forward to read more.

  66. seo says:

    The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

  67. I just don’t understand why these guys get married. No one would care what they do if they didn’t. Think Wilt Chamberlain.

Leave a Reply