Sie sind auf Seite 1von 5

12/13/2009 Ajax (programming) - Wikipedia, the fr…

Ajax (programming)
From Wikipedia, the free encyclopedia

Ajax (shorthand for asynchronous JavaScript and XML[1]) 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[2][3]. Data is
usually retrieved using the XMLHttpRequest object. Despite the name, the use of JavaScript and XML is not
actually required, nor do the requests need to be asynchronous.[4]

Contents
1 Constituent technologies
2 History
3 Technologies
4 Rationale
5 Drawbacks
6 See also
7 Notes
8 External links

Constituent technologies
Like DHTML and LAMP, Ajax is not a technology in itself, but a group of technologies. Ajax uses a combination
of:

HTML and CSS for marking up and styling information.


The DOM accessed with JavaScript to dynamically display and interact with the information presented.
A method for exchanging data asynchronously between browser and server, thereby avoiding page reloads.
The XMLHttpRequest (XHR) object is usually used, but sometimes an IFrame object or a dynamically
added <script> tag is used instead.
A format for the data sent to the browser. Common formats include XML, pre-formatted HTML, plain text,
and JavaScript Object Notation (JSON). This data could be created dynamically by some form of server-
side scripting.

History
Techniques for the asynchronous loading of content date back to the mid 1990s. 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.[5] In 1996, Internet Explorer introduced the IFrame element to

en.wikipedia.org/…/Ajax_(programming) 1/5
12/13/2009
from the web server after a web page isAjax (programming)
loaded. - Wikipedia,
In 1996, the fr… introduced the IFrame element to
Internet Explorer
HTML, which also enables this to be achieved.[6] In 1999, Microsoft created the XMLHTTP ActiveX control in
Internet Explorer 5, which is now supported by Mozilla, Safari and other browsers as the native XMLHttpRequest
object.[6][7] However, this feature only became widely known after being used by Gmail (2004) and Google Maps
(2005).[8]

The term "Ajax" itself was coined in 2005.[1] Jesse James Garrett thought of the term "Ajax" while in the shower,[9]
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.[8]

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,[1] Jesse James Garrett explained that the following technologies are
required:

XHTML and CSS for presentation


the Document Object Model for dynamic display of and interaction with data
XML and XSLT for the interchange, and manipulation and display, of data, respectively
the XMLHttpRequest object for asynchronous communication
JavaScript to bring these technologies together

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.[4] 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,[10] although
other formats such as preformatted HTML or plain text can also be used.[11]

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.[12]
The use of asynchronous requests allows the client's Web browser UI to be more interactive and to respond
en.wikipedia.org/…/Ajax_(programming) 2/5
12/13/2009 Ajax (programming) - Wikipedia, the fr…
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.[13]
The use of Ajax can reduce connections to the server, since scripts and style sheets only have to be
requested once.[13]
State can be maintained throughout a Web site. JavaScript variables will persist because the main container
page need not be reloaded.

Drawbacks
Ajax interfaces are substantially harder to develop properly than 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.[13]
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.[13]
Because most web crawlers do not execute JavaScript code,[14] 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.[15] 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".[16]
The same origin policy prevents some Ajax techniques from being used across domains,[8] although the
W3C has a draft of the XMLHttpRequest object that would enable this functionality.[17]
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.[18][19]
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.
User interfaces can be confusing or behave inconsistently when normal web patterns are not followed.

See also
Ajax framework
ASP.NET AJAX
Comet (programming)
Reverse Ajax
en.wikipedia.org/…/Ajax_(programming) 3/5
12/13/2009 Ajax (programming) - Wikipedia, the fr…
Rich Internet application
EMML
XMLHttpRequest
Google Web Toolkit

Notes
1. ^ a b c Jesse James Garrett (2005-02-18). "Ajax: A New Approach to Web Applications
(http://www.adaptivepath.com/ideas/essays/archives/000385.php) ". AdaptivePath.com.
http://www.adaptivepath.com/ideas/essays/archives/000385.php. Retrieved 2008-06-19.
2. ^ Moore, John (2008-07-07). "What is Ajax? (http://www.riaspot.com/articles/entry/What-is-Ajax-) ".
RIAspot.com. http://www.riaspot.com/articles/entry/What-is-Ajax-. Retrieved 2008-07-07.
3. ^ Hope, Paco; Walther, Ben (2008), Web Security Testing Cookbook, O'Reilly Media, Inc., ISBN 978-0-596-
51483-9
4. ^ a b Ullman, Chris (March 2007). Beginning Ajax (http://www.wrox.com/WileyCDA/Section/id-303217.html) .
wrox. ISBN 978-0-470-10675-4. http://www.wrox.com/WileyCDA/Section/id-303217.html. Retrieved 2008-06-
24.
5. ^ "Code Samples and Apps: Applets (http://java.sun.com/applets/) ". Sun Microsystems, Inc..
http://java.sun.com/applets/. Retrieved 2009-01-02.
6. ^ a b Hinchcliffe, Dion (June 2006). Real-World Ajax: Secrets of the Masters
(http://ajaxdevelopersjournal.com/read/338113.htm) . SYS-CON Media. ISBN 9780977762200.
http://ajaxdevelopersjournal.com/read/338113.htm.
7. ^ "Dynamic HTML and XML: The XMLHttpRequest Object
(http://developer.apple.com/internet/webcontent/xmlhttpreq.html) ". Apple Inc.
http://developer.apple.com/internet/webcontent/xmlhttpreq.html. Retrieved 2008-06-25.
8. ^ a b c "A Brief History of Ajax (http://www.aaronsw.com/weblog/ajaxhistory) ". Aaron Swartz. 2005-12-22.
http://www.aaronsw.com/weblog/ajaxhistory. Retrieved 2009-08-04.
9. ^ "New Web-based Technology Draws Applications, Investors
(http://online.wsj.com/public/article/SB113098635587487074-3diFzslPm_iutdYLU2C5e4DinUA_20061103.html) ".
Wall Street Journal. 2005-11-03. http://online.wsj.com/public/article/SB113098635587487074-
3diFzslPm_iutdYLU2C5e4DinUA_20061103.html. Retrieved 2006-06-14.
10. ^ "JSON - JavaScript Object Notation (http://tapestry.apache.org/tapestry4.1/ajax/json.html) ". Apache.org.
http://tapestry.apache.org/tapestry4.1/ajax/json.html. Retrieved 2008-07-04.
11. ^ "Speed Up Your Ajax-based Apps with JSON (http://www.devx.com/webdev/Article/32651) ". DevX.com.
http://www.devx.com/webdev/Article/32651. Retrieved 2008-07-04.
12. ^ Merrill, Christopher (2006-01-15). "Performance Impacts of Ajax Development
(http://www.webperformanceinc.com/library/reports/AjaxBandwidth/) ". Web Performance, Inc.
http://www.webperformanceinc.com/library/reports/AjaxBandwidth/. Retrieved 2008-06-16.
13. ^ a b c d "Why use Ajax?
(http://www.interaktonline.com/support/articles/Details/Ajax:+Asynchronously+Moving+Forward-
Why+use+Ajax%3F.html?id_art=36&id_asc=309) ". InterAKT. 2005-11-10.
http://www.interaktonline.com/support/articles/Details/Ajax:+Asynchronously+Moving+Forward-
Why+use+Ajax%3F.html?id_art=36&id_asc=309. Retrieved 2008-06-26.
14. ^ Prokoph, Andreas (2007-05-08). "Help Web crawlers efficiently crawl your portal sites and Web sites
(http://www.ibm.com/developerworks/library/x-sitemaps/index.html) ". IBM.
http://www.ibm.com/developerworks/library/x-sitemaps/index.html. Retrieved 2009-04-22.
15. ^ Edwards, James (2006-05-05). "Ajax and Screenreaders: When Can it Work?
(http://www.sitepoint.com/article/ajax-screenreaders-work) ". sitepoint.com. http://www.sitepoint.com/article/ajax-
screenreaders-work. Retrieved 2008-06-27.
16. ^ Quinsey, Peter. "User-Proofing Ajax (http://www.alistapart.com/articles/userproofingajax) ".
http://www.alistapart.com/articles/userproofingajax.
en.wikipedia.org/…/Ajax_(programming) 4/5
12/13/2009 Ajax (programming) - Wikipedia, the fr…
17. ^ "Access Control for Cross-Site Requests (http://dev.w3.org/2006/waf/access-control/) ". World Wide Web
Consortium. http://dev.w3.org/2006/waf/access-control/. Retrieved 2008-06-27.
18. ^ Sullivan, Bryan. "Testing for security in the age of Ajax Programming
(http://www.developerfusion.com/article/6197/testing-for-security-in-the-age-of-ajax-programming/) ".
developerFusion. http://www.developerfusion.com/article/6197/testing-for-security-in-the-age-of-ajax-
programming/. Retrieved 2008-10-15.
19. ^ Stamos, Alex; Lackey, Zane. "Attacking Ajax Web Applications (http://www.isecpartners.com/files/iSEC-
Attacking_AJAX_Applications.BH2006.pdf) ". iSEC Partners. http://www.isecpartners.com/files/iSEC-
Attacking_AJAX_Applications.BH2006.pdf. Retrieved 2009-04-02.

External links
Ajax: A New Approach to Web Applications
(http://www.adaptivepath.com/ideas/essays/archives/000385.php) Article that coined the term and Q&A.
Ajax (programming) (http://www.dmoz.org/Computers/Programming/Languages/JavaScript/Ajax/) at the
Open Directory Project
Retrieved from "http://en.wikipedia.org/wiki/Ajax_(programming)"
Categories: Ajax (programming) | Cloud standards | JavaScript programming language | Web development | Web
2.0 neologisms | Inter-process communication

This page was last modified on 12 December 2009 at 18:53.


Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply.
See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Contact us

en.wikipedia.org/…/Ajax_(programming) 5/5

Das könnte Ihnen auch gefallen