About XMLHttpRequest, iframes, images, remote scripting, AJAX and JSON

I was suprised at the speed of development of technology once called as Inner-Browsing: Extending Web Browsing the Navigation Paradigm by Netscape DevEdge. I created my postXMLHTTP() function in JavaScript a couple of years ago and used it sucessfully in several PHP (including an administrative interface for my photo gallery) and ASP applications.
My little but powerful library allows for populating HTML controls and form validation without page reloading. I developed JavaScript tree which dynamically exchanges data with a server code (PHP, ASP, ...) and works for example with databases or file system on a server.

But recently I realised that I fell behind once again. Technology evolves at great spead and powerfull standards for inner-browsing and new data excahnge formats emerged. Now the name is - AJAX. For me one thing is particularly interesting: when returning data from the server to my postXMLHTTP() JavaScript function I use my own custom (and probably primitive) algorithm to encode data into string on the server side and to decode it on the client (JavaScript).
But now it looks like that there are standard ways to do it (see AJAX, ARSCIF, and JSON links below).

I didn't want to mess with XML format and used XMLHttpRequest.responseText, although there is XMLHttpRequest.responseXML property.  Michal Migurski says here http://mike.teczno.com/json.html that, "In experimenting with XMLHTTPRequest, I've found that using a less-bloaty data exchange format beats XML."

Another important difference is that my function uses a synchronous mode of XMLHTTP and returns a value, while the following libraries are oriented on asynchronous calls and use callback techniques. I don't know what is better approach when using XMLHTTP; perhabs it depend on application requirement.
AJAX uses either XMLHTTP or a hidden frame technique allowing to use older browsers (like IE5.2 on Mac) which do not support XMLHTTPRequest. Hidden frame/iframe/image methods are asynchronous by their nature (your JavaScript forces a frame to post and exits; only after a frame reloads it calls a callback procedure)

Below is a set of related links.