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

📄 connection.js

📁 1.. 需要jdom.jar和bsf.jar,否则无法跟spring整合. 2.. dwr生成的javascript函数会自动加一个回调函数的参数,如原来的函数是checkExist(String
💻 JS
📖 第 1 页 / 共 2 页
字号:
   * 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;		obj.status = o.conn.status;		obj.statusText = 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 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 {string} optional boolean to indicate SSL environment.   * @param {string || boolean} optional qualified path of iframe resource for SSL in IE.   * @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;		}		// If the isUpload argument is true, setForm will call createFrame to initialize		// an iframe as the form target.		//		// The argument secureURI is also required by IE in SSL environments		// where the secureURI string is a fully qualified HTTP path, used to set the source		// of the iframe, to a stub resource in the same domain.		if(isUpload){			// Create iframe in preparation for file upload.			this.createFrame(secureUri?secureUri:null);			// Set form reference and file upload properties to true.			this._isFormSubmit = true;			this._isFileUpload = true;			this._formNode = oForm;			return;		}		var oElement, oName, oValue, oDisabled;		var hasSubmit = false;		// Iterate over the form elements collection to construct the		// label-value pairs.		for (var i=0; i<oForm.elements.length; i++){			oElement = oForm.elements[i];			oDisabled = oForm.elements[i].disabled;			oName = oForm.elements[i].name;			oValue = oForm.elements[i].value;			// Do not submit fields that are disabled or			// do not have a name attribute value.			if(!oDisabled && oName)			{				switch (oElement.type)				{					case 'select-one':					case 'select-multiple':						for(var j=0; j<oElement.options.length; j++){							if(oElement.options[j].selected){								if(window.ActiveXObject){									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';								}								else{									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';								}							}						}						break;					case 'radio':					case 'checkbox':						if(oElement.checked){							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';						}						break;					case 'file':						// stub case as XMLHttpRequest will only send the file path as a string.					case undefined:						// stub case for fieldset element which returns undefined.					case 'reset':						// stub case for input type reset button.					case 'button':						// stub case for input type button elements.						break;					case 'submit':						if(hasSubmit == false){							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';							hasSubmit = true;						}						break;					default:						this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';						break;				}			}		}		this._isFormSubmit = true;		this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);		return this._sFormData;	},  /**   * @description Resets HTML form properties when an HTML form or HTML form   * with file upload transaction is sent.   * @method resetFormState   * @private   * @static   * @return {void}   */	resetFormState:function(){		this._isFormSubmit = false;		this._isFileUpload = false;		this._formNode = null;		this._sFormData = "";	},  /**   * @description Creates an iframe to be used for form file uploads.  It is remove from the   * document upon completion of the upload transaction.   * @method createFrame   * @private   * @static   * @param {string} optional qualified path of iframe resource for SSL in IE.   * @return {void}   */	createFrame:function(secureUri){		// IE does not allow the setting of id and name attributes as object		// properties via createElement().  A different iframe creation		// pattern is required for IE.		var frameId = 'yuiIO' + this._transaction_id;		if(window.ActiveXObject){			var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');			// IE will throw a security exception in an SSL environment if the			// iframe source is undefined.			if(typeof secureUri == 'boolean'){				io.src = 'javascript:false';			}			else if(typeof secureURI == 'string'){				// Deprecated				io.src = secureUri;			}		}		else{			var io = document.createElement('iframe');			io.id = frameId;			io.name = frameId;		}		io.style.position = 'absolute';		io.style.top = '-1000px';		io.style.left = '-1000px';		document.body.appendChild(io);	},  /**   * @description Parses the POST data and creates hidden form elements   * for each key-value, and appends them to the HTML form object.   * @method appendPostData   * @private   * @static   * @param {string} postData The HTTP POST data   * @return {array} formElements Collection of hidden fields.   */	appendPostData:function(postData)	{		var formElements = [];		var postMessage = postData.split('&');		for(var i=0; i < postMessage.length; i++){			var delimitPos = postMessage[i].indexOf('=');			if(delimitPos != -1){				formElements[i] = document.createElement('input');				formElements[i].type = 'hidden';				formElements[i].name = postMessage[i].substring(0,delimitPos);				formElements[i].value = postMessage[i].substring(delimitPos+1);				this._formNode.appendChild(formElements[i]);			}		}		return formElements;	},  /**   * @description Uploads HTML form, including files/attachments, to the   * iframe created in createFrame.   * @method uploadFile   * @private   * @static   * @param {int} id The transaction id.   * @param {object} callback - User-defined callback object.   * @param {string} uri Fully qualified path of resource.   * @return {void}   */	uploadFile:function(id, callback, uri, postData){		// Each iframe has an id prefix of "yuiIO" followed		// by the unique transaction id.		var frameId = 'yuiIO' + id;		var uploadEncoding = 'multipart/form-data';		var io = document.getElementById(frameId);		// Initialize the HTML form properties in case they are		// not defined in the HTML form.		this._formNode.action = uri;		this._formNode.method = 'POST';		this._formNode.target = frameId;		if(this._formNode.encoding){			// IE does not respect property enctype for HTML forms.			// Instead it uses the property - "encoding".			this._formNode.encoding = uploadEncoding;		}		else{			this._formNode.enctype = uploadEncoding;		}		if(postData){			var oElements = this.appendPostData(postData);		}		this._formNode.submit();		if(oElements && oElements.length > 0){			for(var i=0; i < oElements.length; i++){				this._formNode.removeChild(oElements[i]);			}		}		// Reset HTML form status properties.		this.resetFormState();		// Create the upload callback handler that fires when the iframe		// receives the load event.  Subsequently, the event handler is detached		// and the iframe removed from the document.		var uploadCallback = function()		{			var obj = {};			obj.tId = id;			obj.argument = callback.argument;			try			{				obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;				obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;			}			catch(e){}			if(callback && callback.upload){				if(!callback.scope){					callback.upload(obj);				}				else{					callback.upload.apply(callback.scope, [obj]);				}			}			if(YAHOO.util.Event){				YAHOO.util.Event.removeListener(io, "load", uploadCallback);			}			else if(window.detachEvent){				io.detachEvent('onload', uploadCallback);			}			else{				io.removeEventListener('load', uploadCallback, false);			}			setTimeout(				function(){					document.body.removeChild(io);				}, 100);		};		// Bind the onload handler to the iframe to detect the file upload response.		if(YAHOO.util.Event){			YAHOO.util.Event.addListener(io, "load", uploadCallback);		}		else if(window.attachEvent){			io.attachEvent('onload', uploadCallback);		}		else{			io.addEventListener('load', uploadCallback, false);		}	},  /**   * @description Method to terminate a transaction, if it has not reached readyState 4.   * @method abort   * @public   * @static   * @param {object} o The connection object returned by asyncRequest.   * @param {object} callback  User-defined callback object.   * @param {string} isTimeout boolean to indicate if abort was a timeout.   * @return {boolean}   */	abort:function(o, callback, isTimeout)	{		if(this.isCallInProgress(o)){			o.conn.abort();			window.clearInterval(this._poll[o.tId]);			delete this._poll[o.tId];			if(isTimeout){				delete this._timeOut[o.tId];			}			this.handleTransactionResponse(o, callback, true);			return true;		}		else{			return false;		}	},  /**   * Public method to check if the transaction is still being processed.   *   * @method isCallInProgress   * @public   * @static   * @param {object} o The connection object returned by asyncRequest   * @return {boolean}   */	isCallInProgress:function(o)	{		// if the XHR object assigned to the transaction has not been dereferenced,		// then check its readyState status.  Otherwise, return false.		if(o.conn){			return o.conn.readyState != 4 && o.conn.readyState != 0;		}		else{			//The XHR object has been destroyed.			return false;		}	},  /**   * @description Dereference the XHR instance and the connection object after the transaction is completed.   * @method releaseObject   * @private   * @static   * @param {object} o The connection object   * @return {void}   */	releaseObject:function(o)	{		//dereference the XHR instance.		o.conn = null;		//dereference the connection object.		o = null;	}};YAHOO.register("connection", YAHOO.widget.Module, {version: "2.2.0", build: "127"});

⌨️ 快捷键说明

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