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

📄 connection.js

📁 目录树,在脚本中可以直接调用后台java代码,动态加载数据至页面显示.
💻 JS
📖 第 1 页 / 共 3 页
字号:
   * @return {object} Returns the connection object   */	asyncRequest:function(method, uri, callback, postData)	{		var o = (this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();		if(!o){			return null;		}		else{			// Intialize any transaction-specific custom events, if provided.			if(callback && callback.customevents){				this.initCustomEvents(o, callback);			}			if(this._isFormSubmit){				if(this._isFileUpload){					this.uploadFile(o, callback, uri, postData);					return o;				}				// If the specified HTTP method is GET, setForm() will return an				// encoded string that is concatenated to the uri to				// create a querystring.				if(method.toUpperCase() == 'GET'){					if(this._sFormData.length !== 0){						// If the URI already contains a querystring, append an ampersand						// and then concatenate _sFormData to the URI.						uri += ((uri.indexOf('?') == -1)?'?':'&') + this._sFormData;					}					else{						uri += "?" + this._sFormData;					}				}				else if(method.toUpperCase() == 'POST'){					// If POST data exist in addition to the HTML form data,					// it will be concatenated to the form data.					postData = postData?this._sFormData + "&" + postData:this._sFormData;				}			}			o.conn.open(method, uri, true);			//this.processTransactionHeaders(o);			// Each transaction will automatically include a custom header of			// "X-Requested-With: XMLHttpRequest" to identify the request as			// having originated from Connection Manager.			if(this._use_default_xhr_header){				if(!this._default_headers['X-Requested-With']){					this.initHeader('X-Requested-With', this._default_xhr_header, true);				}			}			if(this._isFormSubmit || (postData && this._use_default_post_header)){				this.initHeader('Content-Type', this._default_post_header);				if(this._isFormSubmit){					this.resetFormState();				}			}			if(this._has_default_headers || this._has_http_headers){				this.setHeader(o);			}			this.handleReadyState(o, callback);			o.conn.send(postData || null);			// Fire global custom event -- startEvent			this.startEvent.fire(o);			if(o.startEvent){				// Fire transaction custom event -- startEvent				o.startEvent.fire(o);			}			return o;		}	},  /**   * @description This method creates and subscribes custom events,   * specific to each transaction   * @method initCustomEvents   * @private   * @static   * @param {object} o The connection object   * @param {callback} callback The user-defined callback object   * @return {void}   */	initCustomEvents:function(o, callback)	{		// Enumerate through callback.customevents members and bind/subscribe		// events that match in the _customEvents table.		for(var prop in callback.customevents){			if(this._customEvents[prop][0]){				// Create the custom event				o[this._customEvents[prop][0]] = new YAHOO.util.CustomEvent(this._customEvents[prop][1], (callback.scope)?callback.scope:null);				// Subscribe the custom event				o[this._customEvents[prop][0]].subscribe(callback.customevents[prop]);			}		}	},  /**   * @description This method serves as a timer that polls the XHR object's readyState   * property during a transaction, instead of binding a callback to the   * onreadystatechange event.  Upon readyState 4, handleTransactionResponse   * will process the response, and the timer will be cleared.   * @method handleReadyState   * @private   * @static   * @param {object} o The connection object   * @param {callback} callback The user-defined callback object   * @return {void}   */    handleReadyState:function(o, callback)    {		var oConn = this;		if(callback && callback.timeout){			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);		}		this._poll[o.tId] = window.setInterval(			function(){				if(o.conn && o.conn.readyState === 4){					// Clear the polling interval for the transaction					// and remove the reference from _poll.					window.clearInterval(oConn._poll[o.tId]);					delete oConn._poll[o.tId];					if(callback && callback.timeout){						window.clearTimeout(oConn._timeOut[o.tId]);						delete oConn._timeOut[o.tId];					}					// Fire global custom event -- completeEvent					oConn.completeEvent.fire(o);					if(o.completeEvent){						// Fire transaction custom event -- completeEvent						o.completeEvent.fire(o);					}					oConn.handleTransactionResponse(o, callback);				}			}		,this._polling_interval);    },  /**   * @description This method attempts to interpret the server response and   * determine whether the transaction was successful, or if an error or   * exception was encountered.   * @method handleTransactionResponse   * @private   * @static   * @param {object} o The connection object   * @param {object} callback The user-defined callback object   * @param {boolean} isAbort Determines if the transaction was terminated via abort().   * @return {void}   */    handleTransactionResponse:function(o, callback, isAbort)    {		// If no valid callback is provided, then do not process any callback handling.		if(!callback){			this.releaseObject(o);			return;		}		var httpStatus, responseObject;		try		{			if(o.conn.status !== undefined && o.conn.status !== 0){				httpStatus = o.conn.status;			}			else{				httpStatus = 13030;			}		}		catch(e){			 // 13030 is the custom code to indicate the condition -- in Mozilla/FF --			 // when the o object's status and statusText properties are			 // unavailable, and a query attempt throws an exception.			httpStatus = 13030;		}		if(httpStatus >= 200 && httpStatus < 300 || httpStatus === 1223){			responseObject = this.createResponseObject(o, callback.argument);			if(callback.success){				if(!callback.scope){					callback.success(responseObject);				}				else{					// If a scope property is defined, the callback will be fired from					// the context of the object.					callback.success.apply(callback.scope, [responseObject]);				}			}			// Fire global custom event -- successEvent			this.successEvent.fire(responseObject);			if(o.successEvent){				// Fire transaction custom event -- successEvent				o.successEvent.fire(responseObject);			}		}		else{			switch(httpStatus){				// The following cases are wininet.dll error codes that may be encountered.				case 12002: // Server timeout				case 12029: // 12029 to 12031 correspond to dropped connections.				case 12030:				case 12031:				case 12152: // Connection closed by server.				case 13030: // See above comments for variable status.					responseObject = this.createExceptionObject(o.tId, callback.argument, (isAbort?isAbort:false));					if(callback.failure){						if(!callback.scope){							callback.failure(responseObject);						}						else{							callback.failure.apply(callback.scope, [responseObject]);						}					}					break;				default:					responseObject = this.createResponseObject(o, callback.argument);					if(callback.failure){						if(!callback.scope){							callback.failure(responseObject);						}						else{							callback.failure.apply(callback.scope, [responseObject]);						}					}			}			// Fire global custom event -- failureEvent			this.failureEvent.fire(responseObject);			if(o.failureEvent){				// Fire transaction custom event -- failureEvent				o.failureEvent.fire(responseObject);			}		}		this.releaseObject(o);		responseObject = null;    },  /**   * @description This method evaluates the server response, creates and returns the results via   * its properties.  Success and failure cases will differ in the response   * object's property values.   * @method createResponseObject   * @private   * @static   * @param {object} o The connection object   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback   * @return {object}   */    createResponseObject:function(o, callbackArg)    {		var obj = {};		var headerObj = {};		try		{			var headerStr = o.conn.getAllResponseHeaders();			var header = headerStr.split('\n');			for(var i=0; i<header.length; i++){				var delimitPos = header[i].indexOf(':');				if(delimitPos != -1){					headerObj[header[i].substring(0,delimitPos)] = header[i].substring(delimitPos+2);				}			}		}		catch(e){}		obj.tId = o.tId;		// Normalize IE's response to HTTP 204 when Win error 1223.		obj.status = (o.conn.status == 1223)?204:o.conn.status;		// Normalize IE's statusText to "No Content" instead of "Unknown".		obj.statusText = (o.conn.status == 1223)?"No Content":o.conn.statusText;		obj.getResponseHeader = headerObj;		obj.getAllResponseHeaders = headerStr;		obj.responseText = o.conn.responseText;		obj.responseXML = o.conn.responseXML;		if(typeof callbackArg !== undefined){			obj.argument = callbackArg;		}		return obj;    },  /**   * @description If a transaction cannot be completed due to dropped or closed connections,   * there may be not be enough information to build a full response object.   * The failure callback will be fired and this specific condition can be identified   * by a status property value of 0.   *   * If an abort was successful, the status property will report a value of -1.   *   * @method createExceptionObject   * @private   * @static   * @param {int} tId The Transaction Id   * @param {callbackArg} callbackArg The user-defined argument or arguments to be passed to the callback   * @param {boolean} isAbort Determines if the exception case is caused by a transaction abort   * @return {object}   */    createExceptionObject:function(tId, callbackArg, isAbort)    {		var COMM_CODE = 0;		var COMM_ERROR = 'communication failure';		var ABORT_CODE = -1;		var ABORT_ERROR = 'transaction aborted';		var obj = {};		obj.tId = tId;		if(isAbort){			obj.status = ABORT_CODE;			obj.statusText = ABORT_ERROR;		}		else{			obj.status = COMM_CODE;			obj.statusText = COMM_ERROR;		}		if(callbackArg){			obj.argument = callbackArg;		}		return obj;    },  /**   * @description Method that initializes the custom HTTP headers for the each transaction.   * @method initHeader   * @public   * @static   * @param {string} label The HTTP header label   * @param {string} value The HTTP header value   * @param {string} isDefault Determines if the specific header is a default header   * automatically sent with each transaction.   * @return {void}   */	initHeader:function(label,value,isDefault)	{		var headerObj = (isDefault)?this._default_headers:this._http_headers;		if(headerObj[label] === undefined){			headerObj[label] = value;		}		else{			// Concatenate multiple values, comma-delimited,			// for the same header label,			headerObj[label] =  value + "," + headerObj[label];		}		if(isDefault){			this._has_default_headers = true;		}		else{			this._has_http_headers = true;		}	},  /**   * @description Accessor that sets the HTTP headers for each transaction.   * @method setHeader   * @private   * @static   * @param {object} o The connection object for the transaction.   * @return {void}   */	setHeader:function(o)	{		if(this._has_default_headers){			for(var prop in this._default_headers){				if(YAHOO.lang.hasOwnProperty(this._default_headers, prop)){					o.conn.setRequestHeader(prop, this._default_headers[prop]);				}			}		}		if(this._has_http_headers){			for(var prop in this._http_headers){				if(YAHOO.lang.hasOwnProperty(this._http_headers, prop)){					o.conn.setRequestHeader(prop, this._http_headers[prop]);				}			}			delete this._http_headers;			this._http_headers = {};			this._has_http_headers = false;		}	},  /**   * @description Resets the default HTTP headers object   * @method resetDefaultHeaders   * @public   * @static   * @return {void}   */	resetDefaultHeaders:function(){		delete this._default_headers;		this._default_headers = {};		this._has_default_headers = false;	},  /**   * @description This method assembles the form label and value pairs and   * constructs an encoded string.   * asyncRequest() will automatically initialize the transaction with a   * a HTTP header Content-Type of application/x-www-form-urlencoded.   * @method setForm   * @public   * @static   * @param {string || object} form id or name attribute, or form object.   * @param {boolean} optional enable file upload.   * @param {boolean} optional enable file upload over SSL in IE only.   * @return {string} string of the HTML form field name and value pairs..   */	setForm:function(formId, isUpload, secureUri)	{		this.resetFormState();		var oForm;		if(typeof formId == 'string'){			// Determine if the argument is a form id or a form name.			// Note form name usage is deprecated by supported			// here for legacy reasons.			oForm = (document.getElementById(formId) || document.forms[formId]);		}		else if(typeof formId == 'object'){			// Treat argument as an HTML form object.			oForm = formId;		}		else{			return;

⌨️ 快捷键说明

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