Top PlayPauseResume   Stop   Previous   Next   Skip
About Andrew's Album Application
This is a simple web-based application that implements a photograph album. The photographs are stored as images in a folder hierarchy on a server. The application lets you navigate that hierarchy and view the images. It's intended to be very easy to use, but if you need some help hover the mouse over one of the links for a couple of seconds, and you should see a brief hint about what the link does.

The application relies on Javascript running in your web browser, and needs a reasonably modern browser (for example, Internet Explorer 6, Safari 1.3.1, Firefox 1.5, or Opera 8.51). It won't work on earlier browsers. See also the separate technical details page.

The application was written by me, Andrew Birrell, mostly because I wanted to learn how to use Javascript, dynamic HTML and the XMLHTTP object.

Technical Details
The server side of the application is a PHP script, which responds to requests from the client side by returning XML descriptions of the images and folders. The server-side script is also responsible for creating and maintaining a cache of scaled images, and a database of image and folder titles. The server-side script doesn't do any HTML, and it has no opinion on how you are going to navigate and view the images.

After changing the set of images and folders on the server, you can pre-load the server-side cache by shift-clicking on the "Play" button.

The client side consists of this HTML, plus its associated stylesheet and Javascript. The HTML provides the structure of the displayed page. The stylesheet provides graphical details such as color, position, and size. The Javascript implements the logic of the user interface. It interprets user gestures, and modifies the web page accordingly. When the user action needs information from the server (e.g. a folder listing), the Javascript uses the "XMLHTTP" object to initiate an asynchronous request to the server-side script. When the XML response arrives, the Javascript interprets it and updates the web page.

The Javascript also uses the XMLHTTP object to perform read-ahead for the "Next" button, so that most uses of "Next" will display the result instantly, hiding the client-server latency. Finally, it caches recent responses from the server, further hiding latency.

The HTML is strict HTML 4.01, with a DTD declaration so that browsers run in "standards-compliant" mode, not "quirks" mode.

For those whose browsers can't deal with modern technology, there's a very basic version that doesn't use any Javascript.

All of this is copyright. If you want to copy it for your own use, please ask first.

Edit the Title
Writing ...
User:
Password:
Title:
Reading ...
 
If your web browser thinks it has finished loading this page and you are still seeing this message, it's most likely because your web browser isn't executing my script correctly. This might be because the browser is too old, or it might be because you have disabled scripting.

The script has been tested with Internet Explorer 6.0, Safari 1.3.1, Firefox 1.5, and Opera 8.51. Earlier versions of those browsers will not work (that includes any version of Internet Explorer on a Macintosh).

If you want, you can use a plain old static HTML version of the photograph album instead.

Edit   Bookmark   Help
11111
Andrew's Album Application