rest/ahah: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
Line 11: Line 11:


AHAH is intended to be a much simpler way to do [http://en.wikipedia.org/wiki/Web_development web development] than [http://en.wikipedia.org/wiki/Ajax_%28programming%29 AJAX]: "Asynchronous JavaScript and XML."  Strictly speaking, AHAH can be considered a subset of AJAX, since (X)HTML is just a special kind of XML  However, it is a subset with some very specific and useful properties:
AHAH is intended to be a much simpler way to do [http://en.wikipedia.org/wiki/Web_development web development] than [http://en.wikipedia.org/wiki/Ajax_%28programming%29 AJAX]: "Asynchronous JavaScript and XML."  Strictly speaking, AHAH can be considered a subset of AJAX, since (X)HTML is just a special kind of XML  However, it is a subset with some very specific and useful properties:
# the lack of any custom XML schema dramatically reduces design time
# The lack of custom XML schemas dramatically reduces design time
# AHAH can trivially reuse existing HTML pages, avoiding the need for a custom web service
# AHAH can trivially reuse existing HTML pages, avoiding the need for a custom web service
# all data transport is done via browser-friend HTML, easing debugging and testing
# All data transport is done via browser-friend HTML, easing debugging and testing
# the HTML is designed to be directly embeded in the page's DOM, eliminating the need for parsing
# The HTML is designed to be directly embedded in the page's DOM, eliminating the need for parsing
# As HTML, designers can format it using CSS, rather than programmers having to do XSLT transforms
# As HTML, designers can format it using CSS, rather than programmers having to do XSLT transforms



Revision as of 23:35, 4 November 2005

AHAH: Asychronous HTML over HTTP

AHAH is a very simple technique for dynamically updating web pages using JavaScript. It involves using XMLHTTPRequest to retrieve (X)HTML fragments which are then inserted directly into the web page, whence they can be styled using CSS.

Contributors

Relation to AJAX

AHAH is intended to be a much simpler way to do web development than AJAX: "Asynchronous JavaScript and XML." Strictly speaking, AHAH can be considered a subset of AJAX, since (X)HTML is just a special kind of XML However, it is a subset with some very specific and useful properties:

  1. The lack of custom XML schemas dramatically reduces design time
  2. AHAH can trivially reuse existing HTML pages, avoiding the need for a custom web service
  3. All data transport is done via browser-friend HTML, easing debugging and testing
  4. The HTML is designed to be directly embedded in the page's DOM, eliminating the need for parsing
  5. As HTML, designers can format it using CSS, rather than programmers having to do XSLT transforms

In fact, for any content that is destined to be viewed by the browser, it is virtually impossible to imagine any advantage to sending it as custom XML rather than structurally-correct HTML (with appropriate CSS-friendly class names, of course).

That said, many applications of AJAX are (at least in theory) targeteable at custom JavaScript code or desktop GUIs rather than mere browsers. For those cases, the advantages of HTML over custom XML are somewhat less. However, even here, it may well make sense to encode data using xoxo -- aka XHTML Property Lists -- which can be losslessly converted back and forth from standard data structures (lists and dictionaries) without the need for custom parsers.

Source Code

History

AHAH as a formal technique appears to have been introduced by Kevin Marks on May 12, 2005 under the name JAH: "Just Asynchronous HTML", where it was also used in a simple example. The term "AHAH" was proposed by Ernest Prabhakar during the 2005 Web 2.0 conference, and later adopted as part of the REST-Enabled XHTML (REX) microformat for web services.

David Hansson had independently discovered the exact same concept, and in fact had already submitted an abstract about it for O'Reilly's 2006 E-Tech conference when he encountered the work done by Marks and Prabhakar. He had not however named the technique, and quickly agreed to adopt the AHAH moniker. The same concept has no doubt been independently discovered by many other individuals, but these three are probably the first to make a sustained attempt to promote it as a formal technique.

Implementations

  • There is some talk of directly supporting AHAH in Ruby on Rails using 'partials.'