Table 1. Comparison among a variety of Remote Scripting means (used by Mark's Communicator) by Mark Qian on 9/5/2006
| |
XmlHttpRequest (AJAX) |
Dynamic Hidden Iframe |
Traditional Static Hidden Frame |
Dynamic Script Tag |
Cookie + Image Src |
| Is it cross-browser compatible? |
Yes |
Yes |
Yes |
Yes |
Yes |
| Can it break the Same Origin policy? |
No |
No |
No |
Yes |
No |
| Can it receive HTTP status codes? |
Yes |
Yes (not directly) |
Yes (not directly) |
No (fails on any HTTP status other than 200) |
No |
Does it supports HTTP both GET and POST? |
Yes |
Yes |
Yes |
No (GET only) |
No (GET only) |
| Can it receive XML? |
Yes |
Yes |
Yes |
Yes (but only embedded in a JavaScript statement) |
Yes (not directly) |
| Can it receive JSON? |
Yes |
Yes |
Yes |
Yes (but only embedded in a JavaScript statement) |
Yes (but only embedded in cookies) |
| Does it offers synchronous and asynchronous calls? |
Yes |
No syn(but archievable) |
No syn(but archievable) |
No syn(but archievable) |
No syn(but archievable) |
| Can it transfer any size of data? |
Yes |
Yes |
Yes |
No (Limited by url size limitation because of Get only) |
No (Limited by cookie size limitation) |
| Turning off level - when |
5 - ActiveX off in IE6 |
2 - iFrame off |
1 - Frame not supported |
3 - Script not supported |
4 - Cookie not supported |
| Is it Back Button (losing history) problem free when used "As Is" |
No (but archievable) |
No or Yes (Browser depended but archievable) |
Yes |
No (but archievable) |
No (but archievable) |
| Is it Back Button ("garbage" history) proeblem free when used "As Is" |
Yes |
No or Yes (Browser depended but archievable) |
No (but archievable) |
Yes |
Yes |
| Is it bookmarked problem free when used "As Is" |
No (but archievable) |
No (but archievable) |
No (but archievable) |
No (but archievable) |
No (but archievable) |
| Is it server-side support free? |
Yes |
Yes |
Yes |
No (The server has to return script) |
No (The seever has to write the response to cookies) |
| Is it client-side support free? |
Yes |
No (The callback reference has to be preserved and and triggered at client "menaully") |
No (The callback reference has to be preserved and triggered at client "menaully") |
No (The callback reference has to be preserved at client "menaully") |
No (Cookie needs to be checked to get response) |
| Is the response processed by browser's renderer? |
No |
Yes |
Yes |
No |
No |
| More to come soon... |
... |
... |
... |
... |
... |