XML Browser Applications
XML Browser Applications
I have always pondered the problems associated with developing applications for web browsers in contrast with desktop applications. Web browsers render pages from web sites, but pages rarely offer an ideal user interface for sophisticated web applications. I propose a new approach that uses the available technology found in modern browsers to create interfaces that abandon the page-by-page interface in favor of the kind of interfaces provided by desktop GUI applications.
Objectives
The web application model I present strives to meet these objectives:
- Enhance user productivity and ease-of-use by creating a GUI experience that feels more like a desktop application and less like a series of pages.
- Reduce bandwidth traffic between client and server by sending application presentation data only once and by reducing or eliminating redundant application data traffic.
- Adhere to the standards and the spirit of the web standards defined by the public standards committees.
Demonstration
This prototype demonstrates a simple product listing one might find in a product management application. Clicking on an 'Edit' button for any of the products will reveal an editing form for modifying the product description. What it demonstrates is:
- The interface changes its state without causing the browser to load another page.
- The interface produces a pop-up dialog window that is closely tied with the context that it is created from. The dialog can be dragged across the browser window, mimicking the behavior found in many desktop applications.
- Upon clicking the 'OK' button in the pop-up dialog, the product listing updates itself with the modified information. While the database itself doesn't update, adding the functionality to do so would be relatively straightforward.
The prototype has been tested with Mozilla Firefox 0.8 on Windows 2000 and Microsoft Internet Explorer 6.0 on Windows 2000.
Click here to run the demonstration
Components
- Base HTML file
- Two server-side scripts, list.php and fetch.php, that query a database and return raw XML data instead of formatted HTML
- XSTL documents, list.xsl and edit.xsl, that translate the raw XML data into formatted HTML
- A Javascript library to bring the results to the user, in response to the user's actions
- Some Dynamic HTML tricks to enhance the interface and bring it closer to the desktop application GUI model.

