wiki:XMLHttpRequest

Using JavaScript the web page makes requests to a web server and gets responses in the background. The user stays on the same page, and generally has no idea that the script running on the page might be requesting pages (using GET) or sending data (using POST) off to a server behind the scenes. This avoids the page having to 'refresh' and is useful because it enables a web developer to change a page with data from the server after the page has already been sent to the browser. This means that the page can change based on user input, without having to have pre-empted and pre-loaded that data when the page was generated.

http://allinthehead.com/retro/241/xmlhttprequest-for-the-masses

http://jibbering.com/2002/4/httprequest.html

http://passivedigressive.com/archives/2004-12/real-time-web-interactivity-without-flash/

http://blog.bitflux.ch/archive/spotlight_like_livesearch_added.html

http://www.ideasfreelance.com/lab/instant_edit/ - interesting use.

Updated links from Slashdot article (http://developers.slashdot.org/article.pl?sid=05/02/23/1859222&tid=189&tid=95&tid=217&tid=8)

http://www.adaptivepath.com/publications/essays/archives/000385.php

For XMLHttpRequest object you can mostly rely on the Microsoft XMLHttpRequest documentation, with some caveats: all functions and property names begin with a lower case letter and the object creation is different. Some properties are not implemented. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmobjxmlhttprequest.asp

more Mozilla specific information http://unstable.elemental.com/mozilla/build/latest/mozilla/extensions/dox/interfacensIXMLHttpRequest.html

Inner-Browsing: Extending Web Browsing the Navigation Paradigm (this looks like a good intro and example. brent) http://web.archive.org/web/20030810102320/devedge.netscape.com/viewsource/2003/inner-browsing/

Direct calls using XMLHttpRequest are a possibility, but seem like it might be a lot of work.

It didn't look like that much work from some of the examples give above. I think that the benefits are well worth us giving it a closer look (brent).

XMLHTTP Libraries

LivePage? TwistedWeb LivePage uses XMLHTTP to dynamically update pages from Python. It's an exciting alternative to the traditional "request the whole page" approach the web normally limits us to. Unfortunately LivePage doesn't seem mature or well enough supported for us to use.

We should revisit LivePage? as there is a new version of TwistedWeb soon to be released, and there seems to be increased interest in LivePage?. (DJM)

Sajax Sajax is another XMLHTTP library like LivePage?. It makes it easy to call Lua, Perl, PHP or Python functions from your webpages via JavaScript without performing a browser refresh. But it requires CGI to serve the pages.

in eXe?

ideas as to how this style of web development may be implemented in eXe ... just brainstorming!

instead of going to the server to have to add an iDevice and recreating the page each time this happens, we could load all iDevices into the page as an XML island and add from there. This would be much quicker than having to wait for page to 'recreate itself' every time we want to add a device. (doesn't use XMLHttpRequest but ... achieves similar functionality). A common way to do this is load the XML content into a hidden inline frame and use javascript to read the data from the frame into the parent window's elements.

We also have a usability problem when an idevice is added, edited or moved. If you have a lot of iDevices or content on a page any action you perform that has to do a post loads the page again so you 'lose focus' because you always end back up at the top of the page. This is really confusing for example if you're trying to just move a n iDevice up a page. perhaps using more DOM manipulation would fix this?

Would it be possible to use XMLHttpRequest to save the state of the page, so that if the user moved away to another node in the heirarchy the current page is saved, or would we just trigger this from such an action?