Your IP : 216.73.217.146


Current Path : /home/afacube/www/templates/afacube/javascript/
Upload File :
Current File : /home/afacube/www/templates/afacube/javascript/xhr.js

(function ($) {
	
	/* Proxy pour enchainer les méthodes */
	function chainProxy (baseObject) {
		this._done = false;
		this._error = false;
		this._baseObject = baseObject;
		this._type = baseObject.constructor.name;
	} 
	chainProxy.prototype = {
		doDone : function () {
			this._done
		},
		doError : function () {
			
		},
		done : function (handler) {
			this._done = handler;
			return this;
		},
		error : function (handler) {
			this._error = handler;
			return this;
		},
		terminate : function () {
			
		},
	};
	
	/* Retourne un objet xhr dispo selon plateforme */
	function getNewXhr () {
		var xhr;
		if (typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
		else {
			var versions = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0","Microsoft.XmlHttp"];
				for (var i=0, len=versions.length; i<len; i++) {
				try {
					xhr = new ActiveXObject(versions[i]);
					break;
				}
				catch(e){}
			}
		}
		return xhr;
	}
	
	

	function xhrWorker (url) {
		var cProxy = new chainProxy (window.Worker?new Worker ('workerXHR.js'):getNewXhr());
			
		if (cProxy._type == 'Worker') {
			cProxy._baseObject.addEventListener('message', function (ev) {
				if (cProxy._done) cProxy.doDone(ev.data, ev);
			}, false);
			workerXHR.addEventListener('error', function (ev) {
				if (cProxy._error) cProxy.doError(ev.data, ev);
			}, false);
		}
		else {
			cProxy._baseObject.
		}

	}


	
})(jQuery);