Newer
Older
Digital_Repository / Repositories / Maps / gd_map.js
nstanger on 12 May 2006 2 KB - Renamed "coordinates" to "gd_map".
/******************************************************************************
 * Code adapted from Rasmus' 30 second AJAX Tutorial at:
 *  http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html
 ******************************************************************************/

/******************************************************************************
 * Create XMLHttpRequest object. This happens once when the page
 * is loaded.
 */
function createRequestObject()
{
	var ro;
	var browser = navigator.appName;
	// In typical fashion, Microsoft does things differently.
	if (browser == "Microsoft Internet Explorer")
	{
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		ro = new XMLHttpRequest();
	}
	return ro;
}

// Global XMLHttpRequest object.
var http = createRequestObject();

/******************************************************************************
 * Send a request to the back end application (written in PHP here, but
 * could be ASP, Java servlets, etc.). To use this, attach it to an (X)HTML
 * element either as a direct link, e.g.:
 *
 *     <a href="javascript:sendRequest('foo', 'on')">[foo]</a>
 *
 * or via an onclick event, e.g.:
 *
 *     <img src="foo.jpg" onclick="javascript:sendRequest('foo', 'off')" />
 *
 * If you need different handlers for different things, just create them as
 * separate PHP files on the back end, and dispatch appropriately from here.
 * For example, if you want a separate handler for database operations, you
 * could add another function called "sendDBRequest", or something similar.
 */
function load()
{
	// Somewhere to write the timing information to.
	var timer = document.getElementById( "timer" );
	timer.innerHTML = "Loading...";
	
	// Grab start time.
	var startTime = new Date();
	
	// Open the request.
	http.open('GET', 'coordinates.pl?width=900&height=457', true);
	
	// Set callback function.
	http.onreadystatechange =
		function()
		{
			if(http.readyState == 4)
			{
				if (http.status == 200) // Did it work?
				{
					// Grab the response content.
					var response = http.responseText;
					document.getElementById( "timer" ).innerHTML = '';
				}
			}
			// Grab finishing time. We have to do this here rather than in
			// the main part of the load() function because the map data
			// are loaded asynchronously.
			var endTime = new Date();
			timer.innerHTML = 'Generated in ' + ( endTime - startTime ) + 	' ms.';
		};
	
	// Send the request.
	http.send(null);
}