Ajax Data Transfer Methods - XMLHttpRequest Alternatives
XMLHttpRequest is not the only way to implement Ajax - in fact it is not even the most popular one. Take a quick look at the various transport methods in Ajax...
XMLHttpRequest
This is the W3C standard - most modern browsers supports this - browsers like...
- Firefox
- Opera
- Konquror
- Internet Explorer 7
- etc.
ActiveX(XMLHTTP)
This is the preferred method in Internet Explorer. Currently this is the most used method for ajax calls - due to the simple fact that IE has the majority market share. This is basically a different name for XMLHttpRequest - except for the initilization, all the API calls are the same as in XMLHttpRequest(thank God for that).
IE did not have a native XMLHttpRequest object(dispite the fact that they invented the concept). XMLHttpRequest was first introduced to the world as an ActiveX control in Internet Explorer 5.0. Fortunatly, they have native support for XMLHttpRequest from IE 7 onwards.
IFrame
This is used as a fallback for older browsers by some ajax libraries. In this method you load the URL in a (typically) hidden iframe element. Once the iframe has compleated loading, you can read the contents of the iframe. That way, you have a working Ajax system even in very old browsers.
One of the main advantages of this method is that it does not have the cross-domain issue(also known as the same origin restriction).
Image Source
This is not a popular transfer method - in fact, I have seen it in use only once. The basic concept is that you can point an image's src
to a server-side script. That script can do the necessary operation on the server and then return the image.
The major disadvantage of this method is that data can only be passed to the server - the server cannot pass data back to the client. Well, it is possible - if you set a cookie on the server and then read it in the client side. Trust me, you don't need that kind of headaches - Ajax development is enough trouble as it is.
But it has a few advantages too...
- No cross domain issue
- Works with old browsers
Script Tag
This uses the same principle as the Image method - the only difference is that you use a script instead of an Image tag. That way, the server can return data to the client side as well.
This is a very popular method in the mashup scene. The main reason is this method don't have the cross domain issue. For example del.icio.us offers this as a choice to get data from their site.
This method is also possible using a stylesheet - but I don't want to go into that.
Non Javascript methods
Flash
Flash can be used to get data from the server and pass it to the javascript code.
Java Applets
I am sure that Java Applets can be used for this too - can anyone confirm this?
Related Topics...
- Ajax Transport Layer Alternatives
- AJAX without XMLHttpRequest, frame, iframe, Java or Flash
- The Ajax transport method (PDF)
- XMLHttpRequest Call and IFrame Call