All pastes #110378 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-08-01 16:32 UTC
rendered paste body
function AjaxWorker(remoteTarget, customRequestHandler) {
	this.sendRequest = sendRequest;
	this.createRequestObject = createRequestObject;

	this.remoteTarget = remoteTarget;
	this.customRequestHandler = customRequestHandler;
	this.request = createRequestObject();
	
	this.requestHandler = requestHandler;
}

function requestHandler() { 
	if(this.request.readyState == 4) {
		this.customRequestHandler();
	}
}

function createRequestObject() {
	if (navigator.appName == "Microsoft Internet Explorer") {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return new XMLHttpRequest();
	}
}

function sendRequest(reqParams) {
	this.request.open('get', this.remoteTarget + "?" + reqParams);
	this.request.onreadystatechange = createMethodReference(this, "requestHandler");
	this.request.send(null);
}

function createMethodReference(object, methodName) {
	return function () {
		object[methodName].apply(object, arguments);
	};
}