Table of Contents

EasyAjax

This is (probably) a temporary document.

This is an ajax library I'm writing, to make ajax easier. The library consists of two user functions.

Syntax

ajaxSetup();
ajaxStart(myObj, myMode, myUrl, myFunc);

Example

// Setup the ajax object
var myAjax;
myAjax = ajaxSetup();
	
// Create an example function that will be executed onclick
function example() {
  ajaxStart(myAjax, 'GET', 'hello.php?r=' + randFoo(), 'sayHello(myAjax)');
  return false;
}

// Setup a function that will be executed when we get a result
function sayHello(myObj) {
  // Show the response		
  alert(myObj.responseText);
}

Breakdown

The ajaxSetup() function sets up the AJAX request and returns the resulting object. The library does this in a way that works under Firefox, IE, and Safari.

// Setup the ajax object
var myAjax;
myAjax = ajaxSetup();

The ajaxStart() function requests a web page and sends the result to any function you specify. Typically it is executed from another function that is triggered by some event, such as an onclick event.

Create an example function that will be executed onclick function example() { ajaxStart(myAjax, 'GET', 'hello.php', 'sayHello(myAjax)'); return false; } - myAjax is the object that was returned by ajaxSetup. - 'GET' is the mode, this can be either 'GET' or 'PUT'. - 'hello.php' is the URL to request. We add a random number to prevent caching. - The last string is the function to execute. ===== The Library ===== Here is the complete source code for the library. <code> Setup the AJAX (xmlHttp object)

function ajaxSetup()
{	
	// Setup the object
	var myObj;
	// Try Firefox, Opera 8.0+, and Safari
	try 
	{
		myObj=new XMLHttpRequest();
	}
	// Deal with exceptions
	catch (e)
	{
		// Try Internet Explorer
		try
		{
			myObj=new ActiveXObject("Msxml2.XMLHTTP");
		}
	  	catch (e)
		{
			// Try older IE's (not mobile)
			try
			{
				myObj=new ActiveXObject("Microsoft.XMLHTTP");
			}
			// Ooops, bad news
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	// Return the object
	return myObj;
}

function ajaxStart(myObj, myMode, myUrl, myFunc) {
	myObj.open(myMode, myUrl, false); // Setup a URL to open
	myObj.send(null); // Send the request
	myObj.onreadystatechange=eval('ajaxReady(myObj, myFunc)'); // This MUST be after open & send
	return false;
}

function ajaxReady(myObj, myFunc) {
	if(myObj.readyState==4)
	{
		eval(myFunc);
	}	
}

// Generate a random number, later used to prevent caching
function randFoo() {
	var num = Math.floor((9999999999-4)*Math.random()) + 1;
	return num;
}

</code>

comments powered by Disqus
easyajax.txt · Last modified: 2020/06/01 22:53 (external edit)