📄 ajax.js
字号:
self._myAjax.onreadystatechange = function( ) {
// document.all is only valid on IE
// currently IE fails when readyState 3 is checked
if (!(document.all) && self._myAjax.readyState == 3) {
self._myCount++;
if ((self._myCount % 10) == 0) {
self._big_file_status.value = "readyState = 3 - called " + _myCount + " times.";
}
} else if (self._myAjax.readyState == 4) {
try {
if (self._myAjax.status == 200) {
self._big_file_status.value = "Done (" + self._myAjax.responseText.length + " bytes) | Server Message: " + self._myAjax.statusText;
} else {
alert("There was a problem retrieving the XML data:\n" + self._myAjax.statusText);
self._big_file_status.value = "** ERROR **" + self._myAjax.statusText;
}
}
catch (e) {
//
}
$('big_file_status_button').style.display = 'none';
}
};
// show that in mozilla you can specify an on error event
// IE has no such event
// You can also specify onload and onprogress as well in mozilla
// to see this function run, kill your app server while downloading the big file
// both onerror and onreadystatechange will be fired
if (!document.all) {
self._myAjax.onerror = function( ) {
alert('Error: ' + self._myAjax.status + " count:" + self._myCount)
}
}
self._myAjax.open("POST", "/ThinkCAP/servlet/getBigFile", true);
self._myAjax.send('');
}
function stopBigFile() {
var status = $('big_file_status_button');
if (status) {
status.style.display = 'none';
if (status.ajaxHandle) {
status.ajaxHandle.abort();
status.ajaxHandle = null;
}
}
}
<!--------------------------------- END PING ---------------------------------------------------->
<!--------------------------------- BEGIN TRACK CHANGES------------------------------------------>
function trackChanges( field, event ) {
var self = this;
self.field = field;
if (event) {
if (event.type == "keyup") {
if (event.keyCode == 16 || event.keyCode == 17 || event.keyCode == 18) {
// do nothing
return;
}
}
}
var type = field.type;
var last_value = field.value;
logger("--- track changes for " + field.name + ", value=" + field.value);
if (type == "checkbox") {
last_value = field.checked;
}
var url = '/ThinkCAP/servlet/field_tracker?field_name=' + encode(field.name) + '&last_value=' + encode(last_value);
initAJAX("POST", url, function( ) {
if (_ajax.readyState == 4) {
if (_ajax.status == 200) {
var s = self.field.name + "_info";
$(s).innerHTML = " -> From Server: <b>" + _ajax.responseText + "</b>";
} else {
alert("There was a problem retrieving the XML data:\n" + _ajax.statusText);
}
}
});
_ajax.send('');
}
<!----------------------------------- END TRACK CHANGES------------------------------------------>
<!------------------------------------- BEGIN SELECT ------------------------------------------->
function clearSelect() {
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementsByName(element)[0];
if (element && element.options) {
element.options.length = 0;
element.selectedIndex = -1;
}
}
}
/*
* getSelect1: Creates a local XMLHTTPRequest and sets the onreadystatechange
*/
function getSelect1( key, dataset, target ) {
// This is an example of a fully encapsulated request + response
var self = this; // allows us to reference this method within the processGetSelect method
self._myAjax = startAJAX();
self._myAjax.onreadystatechange = function( ) {
if (self._myAjax.readyState == 4) {
if (self._myAjax.status == 200) {
var response = self._myAjax.responseText;
logger(response);
eval(response);
return true;
} else {
alert("There was a problem retrieving the XML data:\n" + self._myAjax.statusText);
return false;
}
}
}
self.URL = '/ThinkCAP/servlet/get_select';
self.data = "dataset=" + dataset + '&target=' + target + '&key=' + key;
self._myAjax.open("POST", self.URL, true);
self._myAjax.setRequestHeader("Connection", "close");
self._myAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
logger('Sending request to: ' + self.URL);
self._myAjax.send(self.data);
}
/*
* AJAXRequest: An encapsulated AJAX request. To run, call
* new AJAXRequest( method, url, async, process, data )
*
*/
function executeReturn( AJAX ) {
if (AJAX.readyState == 4) {
if (AJAX.status == 200) {
logger('execute return: ' + AJAX.readyState + "/" + AJAX.status + "/" + AJAX.statusText);
eval(AJAX.responseText);
}
}
}
function AJAXRequest( method, url, data, process, async ) {
var self = this;
self.AJAX = startAJAX();
if (typeof process == 'undefined') {
process = executeReturn;
}
self.process = process;
self.AJAX.onreadystatechange = function( ) {
logger("AJAXRequest Handler: State = " + self.AJAX.readyState);
if (self.AJAX.readyState == 4) {
self.AJAXStatus = self.AJAX.status;
self.AJAXResponseText = self.AJAX.responseText;
self.AJAXResponseXML = self.AJAX.responseXML;
self.AJAXStatusText = self.AJAX.statusText;
self.process(self.AJAX);
}
}
if (!method) {
method = "POST";
}
method = method.toUpperCase();
if (typeof async == 'undefined') {
async = true;
}
logger("----------------------------------------------------------------------");
logger("AJAXREQUEST: " + ((async) ? "Async" : "Sync") + " " + method + ": URL: " + url + ", Data: " + data);
self.AJAX.open(method, url, async);
if (method == "POST") {
self.AJAX.setRequestHeader("Connection", "close");
self.AJAX.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
self.AJAX.setRequestHeader("Method", "POST " + url + "HTTP/1.1");
}
self.AJAX.send(data);
}
/*
* getSelect2: Calls the AJAXRequest and passes a pointer to the executeReturn function
*/
function getSelect2( key, dataset, target ) {
return AJAXRequest("POST", '/ThinkCAP/servlet/get_select',
'dataset=' + dataset + '&target=' + target + '&key=' + key, executeReturn,
true);
}
/*
* getSelect3: Calls the AJAXRequest and passes a new function
*/
function getSelect3( key, dataset, target ) {
return AJAXRequest("POST", '/ThinkCAP/servlet/get_select',
'dataset=' + dataset + '&target=' + target + '&key=' + key, function( _ajax ) {
if (_ajax.readyState == 4 && _ajax.status == 200) {
eval(_ajax.responseText)
}
});
}
<!------------------------------------- END SELECT --------------------------------------------->
<!--------------------------------- BEGIN "GET FORM VALUES" ------------------------------------>
function getFormData( value, dataset, target, parm2, parm3 ) {
var url = '/ThinkCAP/servlet/get_formdata?dataset=' + dataset + '&target=' + target + '&value=' + value;
logger(_ajax.readyState);
initAJAX("post", url, processFormData);
_ajax.send(null);
}
function processFormData() {
logger('process form data:' + _ajax.readyState)
if (_ajax.readyState == 4) {
if (_ajax.status == 200) {
var response = _ajax.responseText;
logger("return from processFormData");
logger(response);
eval(response);
} else {
alert("There was a problem retrieving the XML data:\n" + _ajax.statusText);
}
}
}
function getFormValues( form ) {
form = $(form);
var field = "";
var value = "";
var valueString = "";
var replaceID = "";
var parentNode = form.parentNode;
for (var i = 0; i < form.elements.length; i++) {
var field = form.elements[i];
if (!field.disabled) {
filedName = encode(field.name);
if (field.type == 'select-one') {
if (field.selectedIndex > -1) {
value = field.options[field.selectedIndex].value;
}
} else {
value = field.value;
}
valueString += ((i) ? '&' : '') + field.name + '=' + encode(value);
}
}
return valueString
}
function saveForm( form, extravalues, process ) {
// process is an optional parameter
var form = $(form);
if (!form.method) {
form = $(form.form);
}
if (form) {
var valueString = getFormValues(form) + (! !(extravalues) ? extravalues : '');
valueString += "&AJAX_FORM_NAME=" + encode(form.id);
var functionToCall = null;
if (typeof process == 'function') {
functionToCall = process;
} else {
functionToCall = executeReturn; // generic function will execute what is returned
}
new AJAXRequest('POST', form.action, valueString, functionToCall);
}
}
function saveCustomerForm( form ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -