⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xoad.js

📁 Ajax最流行书籍
💻 JS
📖 第 1 页 / 共 2 页
字号:
	try {		xmlHttp.setRequestHeader('Content-Length', requestBody.length);		xmlHttp.setRequestHeader('Content-Type', 'text/plain; charset=UTF-8');		xmlHttp.setRequestHeader('Accept-Charset', 'UTF-8');	} catch (e) {}	if (methodCallback != null) {		xmlHttp.onreadystatechange = function() {			if (xmlHttp.readyState == 4) {				var response = requestCompleted();				if (typeof(response.returnValue) != 'undefined') {					methodCallback(response.returnValue);				}			}		}	}	if (callTimeout != null) {		eval('xoad.callbacks.table.call' + callId + ' = {}');		eval('xoad.callbacks.table.call' + callId + '.timeout = false');		eval('xoad.callbacks.table.call' + callId + '.source = obj');		eval('xoad.callbacks.table.call' + callId + '.id = '		+ 'window.setTimeout(\'xoad.callbacks.table.call' + callId + '.timeout = true; '		+ 'xoad.throwException(xoad.getError(XOAD_ERROR_TIMEOUT, "Timeout."), [xoad.callbacks.table.call' + callId + '.source, "' + method + '"]);\', callTimeout)');	}	xmlHttp.send(requestBody);	if (methodCallback == null) {		var response = requestCompleted();		if (typeof(response.returnValue) != 'undefined') {			return response.returnValue;		}		return null;	} else {		callResult = new xoad.callSuspender();		return callResult;	}};xoad.catchEvent = function(obj, eventArguments){	if (eventArguments.length < 2) {		eventArguments[1] = null;	}	var eventData = {		listener	:	obj,		event		:	eventArguments[0],		filter		:	eventArguments[1]	};	xoad.events.table[xoad.events.table.length] = eventData;	xoad.events.tableLength ++;	if (xoad.events.status < 1) {		xoad.events.status = 1;		window.setTimeout('xoad.dispatchEvents()', xoad.events.startInterval);	}	return true;};xoad.ignoreEvent = function(obj, eventArguments){	if (xoad.events.tableLength < 1) {		return false;	}	if (eventArguments.length < 2) {		eventArguments[1] = null;	}	for (var iterator = xoad.events.table.length - 1; iterator >= 0; iterator --) {		var event = xoad.events.table[iterator];		if (		(event.listener.__uid == obj.__uid) &&		(event.event == eventArguments[0]) &&		(event.filter == eventArguments[1])) {			xoad.events.table[iterator] = null;			xoad.events.tableLength --;			break;		}	}	return true;};xoad.queueDispatchEvents = function(time){	if (typeof(time) == 'undefined') {		time = xoad.events.refreshInterval;	}	window.setTimeout('xoad.dispatchEvents()', time);};xoad.dispatchEvents = function(){	if (xoad.events.tableLength < 1) {		xoad.events.status = 0;		return false;	}	if (	(typeof(xoad.events.callbackUrl) != 'string') ||	(typeof(xoad.events.lastRefresh) != 'number')) {		xoad.events.status = 0;		return false;	}	xoad.events.status = 1;	var eventsData = [];	for (var iterator = 0; iterator < xoad.events.table.length; iterator ++) {		var event = xoad.events.table[iterator];		if (event != null) {			eventsData[eventsData.length] = {				className	:	event.listener.__class,				event		:	event.event,				filter		:	event.filter			};		}	}	var xmlHttp = xoad.getXmlHttp();	var requestBody = xoad.serialize({		eventsCallback	:	true,		time			:	xoad.events.lastRefresh,		data			:	eventsData	});	var url = xoad.events.callbackUrl;	if (url.indexOf('?') < 0) {		url += '?';	} else {		url += '&';	}	url += 'xoadCall=true';	xmlHttp.open('POST', url, true);	var callId = xoad.callbacks.count ++;	var requestCompleted = function() {		if (eval('xoad.callbacks.table.call' + callId + '.timeout')) {			return false;		}		eval('window.clearTimeout(xoad.callbacks.table.call' + callId + '.id)');		eval('xoad.callbacks.table.call' + callId + ' = null');		if (xmlHttp.status != 200) {			xoad.queueDispatchEvents();			return false;		} else {			if (xmlHttp.responseText == null) {				xoad.queueDispatchEvents();				return false;			}			if (xmlHttp.responseText.length < 1) {				xoad.queueDispatchEvents();				return false;			}			try {				eval('var xoadResponse = ' + xmlHttp.responseText + ';');			} catch(e) {				xoad.queueDispatchEvents();				return false;			}			if (typeof(xoadResponse) != 'object') {				xoad.queueDispatchEvents();				return false;			}			if (xoad.notifyObservers('dispatchEventsCompleted', xoadResponse)) {				for (var serverIterator = 0; serverIterator < xoadResponse.result.length; serverIterator ++) {					var serverEvent = xoadResponse.result[serverIterator];					for (var clientIterator = 0; clientIterator < xoad.events.table.length; clientIterator ++) {						var clientEvent = xoad.events.table[clientIterator];						if (clientEvent != null) {							if (							(serverEvent.event == clientEvent.event) &&							(serverEvent.className.toLowerCase() == clientEvent.listener.__class.toLowerCase()) &&							(serverEvent.filter == clientEvent.filter)) {								eval('if (typeof(clientEvent.listener.' + clientEvent.event + ') == "function") { '								+ 'clientEvent.listener.' + clientEvent.event + '(serverEvent.eventData.sender, serverEvent.eventData.data) }');							}						}					}					if (serverEvent.time > xoad.events.lastRefresh) {						xoad.events.lastRefresh = serverEvent.time;					}				}				xoad.queueDispatchEvents();				return true;			}		}		return false;	};	try {		xmlHttp.setRequestHeader('Content-Length', requestBody.length);		xmlHttp.setRequestHeader('Content-Type', 'text/plain; charset=UTF-8');		xmlHttp.setRequestHeader('Accept-Charset', 'UTF-8');	} catch (e) {}	xmlHttp.onreadystatechange = function() {		if (xmlHttp.readyState == 4) {			xoad.events.status = 3;			requestCompleted();			xoad.events.status = 1;		}	};	eval('xoad.callbacks.table.call' + callId + ' = {}');	eval('xoad.callbacks.table.call' + callId + '.timeout = false');	eval('xoad.callbacks.table.call' + callId + '.id = '	+ 'window.setTimeout(\'xoad.callbacks.table.call' + callId + '.timeout = true; '	+ 'xoad.queueDispatchEvents();\', xoad.events.timeout)');	xoad.events.status = 2;	xmlHttp.send(requestBody);	return true;};xoad.queuePostEvent = function(eventId){	if (typeof(xoad.events.postTable[eventId]) == 'object') {		xoad.postEvent(xoad.events.postTable[eventId].sender, [		xoad.events.postTable[eventId].event,		xoad.events.postTable[eventId].data,		xoad.events.postTable[eventId].filter,		eventId]);	}};xoad.postEvent = function(obj, eventArguments){	if (typeof(xoad.events.callbackUrl) != 'string') {		return false;	}	var	eventName = eventArguments[0];	var eventData = (eventArguments.length > 1) ? eventArguments[1] : null;	var eventFilter = (eventArguments.length > 2) ? eventArguments[2] : null;	var eventId = (eventArguments.length > 3) ? eventArguments[3] : xoad.events.postTable.length;	xoad.events.postTable[eventId] = {		sender		:	obj,		event		:	eventName,		data		:	eventData,		filter		:	eventFilter	};	var xmlHttp = xoad.getXmlHttp();	var requestBody = xoad.serialize({		eventPost	:	true,		className	:	obj.__class,		sender		:	xoad.serialize(obj),		event		:	eventName,		data		:	eventData,		filter		:	eventFilter	});	var url = xoad.events.callbackUrl;	if (url.indexOf('?') < 0) {		url += '?';	} else {		url += '&';	}	url += 'xoadCall=true';	xmlHttp.open('POST', url, true);	var requestCompleted = function() {		if (xmlHttp.status != 200) {			xoad.queuePostEvent(eventId);			return false;		} else {			if (xmlHttp.responseText == null) {				xoad.queuePostEvent(eventId);				return false;			}			if (xmlHttp.responseText.length < 1) {				xoad.queuePostEvent(eventId);				return false;			}			try {				eval('var xoadResponse = ' + xmlHttp.responseText + ';');			} catch(e) {				xoad.queuePostEvent(eventId);				return false;			}			if (typeof(xoadResponse) != 'object') {				xoad.queuePostEvent(eventId);				return false;			}			if (xoadResponse.status != true) {				xoad.queuePostEvent(eventId);				return false;			}			if (xoad.notifyObservers('postEventCompleted', xoadResponse)) {				xoad.events.postTable[eventId] = null;				return true;			}		}		return false;	};	try {		xmlHttp.setRequestHeader('Content-Length', requestBody.length);		xmlHttp.setRequestHeader('Content-Type', 'text/plain; charset=UTF-8');		xmlHttp.setRequestHeader('Accept-Charset', 'UTF-8');	} catch (e) {}	xmlHttp.onreadystatechange = function() {		if (xmlHttp.readyState == 4) {			requestCompleted();		}	};	xmlHttp.send(requestBody);	return true;};xoad.addObserver = function(observer){	xoad.observers[xoad.observers.length] = observer;	return true;};xoad.notifyObservers = function(event){	if (xoad.observers.length < 1) {		return true;	}	var eventMethod = 'on' + event.charAt(0).toUpperCase() + event.substr(1);	var notifyArguments = [];	var iterator = 0;	for (iterator = 1; iterator < arguments.length; iterator ++) {		notifyArguments[notifyArguments.length] = arguments[iterator];	}	for (iterator = 0; iterator < xoad.observers.length; iterator ++) {		xoad.invokeMethod(xoad.observers[iterator], eventMethod, notifyArguments);	}	return true;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -