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

📄 ajax.js

📁 一个开源的rfid middleware 资料
💻 JS
📖 第 1 页 / 共 3 页
字号:
    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 + -