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

📄 xoad_optimized.js

📁 Ajax最流行书籍
💻 JS
📖 第 1 页 / 共 2 页
字号:
var XOAD_ERROR_USER = 0x400;var XOAD_ERROR_TIMEOUT = 0x401;var xoad = {};xoad.errorHandler = null;xoad.callbacks = {};xoad.callbacks.table = {};xoad.callbacks.count = 0;xoad.events = {};xoad.events.table = [];xoad.events.postTable = [];xoad.events.timeout = 5000;xoad.events.startInterval = 250;xoad.events.refreshInterval = 2000;xoad.events.status = 0;xoad.observers = [];xoad.asyncCall = function() {};xoad.callSuspender = function(){return {suspend : function() {this.suspended = true;},suspended : false}};xoad.getError = function(errorCode, errorMessage){return {code : errorCode,message : errorMessage}};xoad.getXmlHttp = function(){var xmlHttp = null;try {xmlHttp = new XMLHttpRequest();} catch (e) {var progIds = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0'];var success = false;for (var iterator = 0; (iterator < progIds.length) && ( ! success); iterator ++) {try {xmlHttp = new ActiveXObject(progIds[iterator]);success = true;} catch (e) {}}if ( ! success ) {return null;}}return xmlHttp;};xoad.clone = function(target, source){var wipeKeys = [];var key = null;for (key in target.__meta) {if (typeof(source[key]) == 'undefined') {wipeKeys[wipeKeys.length] = key;}}if (wipeKeys.length > 0) {for (var iterator = 0; iterator < wipeKeys.length; iterator ++) {target[wipeKeys[iterator]] = null;}}for (key in source.__meta) {if (source[key] == null) {target[key] = null;} else {target[key] = source[key];}}target.__meta = source.__meta;target.__size = source.__size;target.__timeout = source.__timeout;};xoad.serialize = function(data){if (data == null) {return 'N;';}var type = typeof(data);var code = '';var iterator = 0;var length = null;var asciiCode = null;var key = null;if (type == 'boolean') {code += 'b:' + (data ? 1 : 0) + ';';} else if (type == 'number') {if (Math.round(data) == data) {code += 'i:' + data + ';';} else {code += 'd:' + data + ';';}} else if (type == 'string') {length = data.length;for (iterator = 0; iterator < data.length; iterator ++) {asciiCode = data.charCodeAt(iterator);if ((asciiCode >= 0x00000080) && (asciiCode <= 0x000007FF)) {length += 1;} else if ((asciiCode >= 0x00000800) && (asciiCode <= 0x0000FFFF)) {length += 2;} else if ((asciiCode >= 0x00010000) && (asciiCode <= 0x001FFFFF)) {length += 3;} else if ((asciiCode >= 0x00200000) && (asciiCode <= 0x03FFFFFF)) {length += 4;} else if ((asciiCode >= 0x04000000) && (asciiCode <= 0x7FFFFFFF)) {length += 5;}}code += 's:' + length + ':"' + data + '";';} else if (type == 'object') {if (typeof(data.__class) == 'undefined') {length = 0;if ((typeof(data.length) == 'number') &&(data.length > 0) &&(typeof(data[0]) != 'undefined')) {for (iterator = 0; iterator < data.length; iterator ++) {if (typeof(data[iterator]) != 'function') {code += xoad.serialize(iterator);code += xoad.serialize(data[iterator]);length ++;}}} else {for (key in data) {if (typeof(data[key]) != 'function') {if (/^[0-9]+$/.test(key)) {code += xoad.serialize(parseInt(key));} else {code += xoad.serialize(key);}code += xoad.serialize(data[key]);length ++;}}}code = 'a:' + length + ':{' + code + '}';} else {code += 'O:' + data.__class.length + ':"' + data.__class + '":' + data.__size + ':{';if (data.__meta != null) {for (key in data.__meta) {if (typeof(data[key]) != 'function') {code += xoad.serialize(key);code += xoad.serialize(data[key]);}}}code += '}';}} else {code = 'N;'}return code;};xoad.setErrorHandler = function(handler){if ((handler != null) &&(typeof(handler) == 'function')) {xoad.errorHandler = handler;return true;}return false;};xoad.restoreErrorHandler = function(){xoad.errorHandler = null;return true;};xoad.throwException = function(error, throwArguments){if (typeof(throwArguments) != 'undefined') {var sender = throwArguments[0];var method = throwArguments[1];method = 'on' + method.charAt(0).toUpperCase() + method.substr(1) + 'Error';if (xoad.invokeMethod(sender, method, [error])) {return false;}}if ((xoad.errorHandler != null) &&(typeof(xoad.errorHandler) == 'function')) {xoad.errorHandler(error);return false;}throw error;};xoad.invokeMethod = function(obj, method, invokeArguments){if ((obj == null) ||(typeof(obj) != 'object')) {return false;}var type = eval('typeof(obj.' + method + ')');if (type == 'function') {var invokeCode = 'obj.' + method + '(';if (typeof(invokeArguments) != 'undefined') {for (var iterator = 0; iterator < invokeArguments.length; iterator ++) {invokeCode += 'invokeArguments[' + iterator + ']';if (iterator < invokeArguments.length - 1) {invokeCode += ', ';}}}invokeCode += ')';return eval(invokeCode);}return false;};xoad.call = function(obj, method, callArguments){if ((obj == null) ||(typeof(obj) != 'object') ||(typeof(obj.__class) != 'string')) {return false;}var methodCallback = null;var methodArgs = [];for (var iterator = 0; iterator < callArguments.length; iterator ++) {if ((typeof(callArguments[iterator]) == 'function') &&(iterator == callArguments.length - 1)) {methodCallback = callArguments[iterator];continue;}methodArgs[methodArgs.length] = callArguments[iterator];}var xmlHttp = xoad.getXmlHttp();var requestBody = {source : obj,className : obj.__class,method : method,arguments : methodArgs};xoad.notifyObservers('call', requestBody);requestBody.source = xoad.serialize(requestBody.source);requestBody.arguments = xoad.serialize(requestBody.arguments);requestBody = xoad.serialize(requestBody);var url = obj.__url;if (url.indexOf('?') < 0) {url += '?';} else {url += '&';}url += 'xoadCall=true';if (methodCallback != null) {xmlHttp.open('POST', url, true);} else {xmlHttp.open('POST', url, false);}var callId = null;var callTimeout = obj.getTimeout();if (callTimeout != null) {callId = xoad.callbacks.count;}xoad.callbacks.count ++;var callResult = true;var requestCompleted = function() {if (typeof(callResult) == 'object') {if (callResult.suspended) {return false;}}if (callId != null) {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) {return xoad.throwException(xoad.getError(xmlHttp.status, xmlHttp.statusText), [obj, method]);} else {if (xmlHttp.responseText == null) {return xoad.throwException(xoad.getError(xmlHttp.status, 'Empty response.'), [obj, method]);}if (xmlHttp.responseText.length < 1) {return xoad.throwException(xoad.getError(xmlHttp.status, 'Empty response.'), [obj, method]);}try {eval('var xoadResponse = ' + xmlHttp.responseText + ';');} catch(e) {return xoad.throwException(xoad.getError(xmlHttp.status, 'Invalid response.'), [obj, method]);}if (typeof(xoadResponse.exception) != 'undefined') {return xoad.throwException(xoad.getError(XOAD_ERROR_USER, xoadResponse.exception), [obj, method]);}if (xoad.notifyObservers('callCompleted', xoadResponse)) {obj.__clone(xoadResponse.returnObject);if (typeof(xoadResponse.output) != 'undefined') {obj.__output = xoadResponse.output;} else {obj.__output = null;}return {returnValue : xoadResponse.returnValue};}}return false;

⌨️ 快捷键说明

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