zoukankan      html  css  js  c++  java
  • ajax_XmlHttp lcs

    function $(e) {
    var tag = document.getElementById(e);
    if(tag) return tag;
    tag = document.getElementsByName(e);
    if(tag.tagName == undefined) return null;
    return tag;
    }
    function CreaeXMLDOM()
    {
    var MSDOM = ['MSXML2.DOMDocument.4.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument.2.6', 'MSXML2.DOMDocument', 'Microsoft.XMLDOM'];
    var XMLDOM;
    for(var n = 0; n < MSDOM.length; n++)
    {
    try
    {
    XMLDOM = new ActiveXObject(MSDOM[n]);
    break;
    }
    catch(e)
    {
    }
    }
    if(typeof(XMLDOM) != "object")
    XMLDOM = document.implementation.createDocument("text/xml", "", null);
    if(typeof(XMLDOM) != "object")
    alert('创建XMLDOM对象失败,请升级您的浏览器');
    return XMLDOM;
    }

    function GetXmlNodeValue(objXmlElement)
    {
    var str = "";
    if(window.XMLHttpRequest)        //Mozilla
    {
    try
    {
    str = objXmlElement.firstChild.nodeValue;
    }
    catch(ex)
    {
    alert(ex);
    str = "";
    }
    }
    else if(window.ActiveXObject)    //IE
    {
    str = objXmlElement.text;
    }
    return str;
    }
    var Request = new function(){
    this.pool = new Array();
    //建立XMLHttp对像,并处理通道
    this.getXMLHttp = function (chunnel)
    {
    if(chunnel != null)
    {
    for (var a = 0; a < this.pool.length; a++)
    {
    if(this.pool[a]["chunnel"] == chunnel)
    {
    if(this.pool[a]["obj"].readyState == 0 || this.pool[a]["obj"].readyState == 4)
    {
    return this.pool[a]["obj"];
    }
    else
    {
    return "busy";
    }
    }
    }
    this.pool[this.pool.length] = new Array();
    this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
    this.pool[this.pool.length - 1]["chunnel"] = chunnel;
    return this.pool[this.pool.length - 1]["obj"];

    for (var i = 0; i < this.pool.length; i++)
    {
    if (this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4)
    {
    return this.pool[i]["obj"];
    }
    }
    this.pool[this.pool.length] = new Array();
    this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
    this.pool[this.pool.length - 1]["chunnel"] = "";
    return this.pool[this.pool.length - 1]["obj"];
    }
    this.createXMLHttp = function ()
    {
    if(window.XMLHttpRequest)
    {
    var xmlObj = new XMLHttpRequest();
    }
    else
    {
    var MSXML = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
    for(var n = 0; n < MSXML.length; n++)
    {
    try
    {
    var xmlObj = new ActiveXObject(MSXML[n]);       
    break;
    }
    catch(e)
    {
    }
    }
    }
    return xmlObj;
    }
    //主运行部分  IsAsynchronous是否为异步方式  异步:后面的代码无需等待此回调执行完毕   同步:等待XmlHttp返回结果后再继续执行
    this.SendToPage = function (url,data,callback,IsAsynchronous,chunnel)
    {
    var objXMLHttp = this.getXMLHttp(chunnel)
    //创建XMLHTTP对象失败
    if(typeof(objXMLHttp) != "object")
    {
    if (objXMLHttp == 'busy')
    {
    alert('您的上次操作还没有完成,请稍候再进行此操作');
    }
    else
    {
    alert('请升级您的浏览器');
    }
    return ;
    }
    //解决XMLHTTP请求时浏览器缓存的问题
    url += (url.indexOf("?") >= 0) ? "&nowtime=" + new Date().getTime() : "?nowtime=" + new Date().getTime();
    if(data == "")
    {
    objXMLHttp.open('GET' , url, IsAsynchronous);
    objXMLHttp.send('');
    }
    else
    {
    objXMLHttp.open('POST' , url, IsAsynchronous);
    //为Post时,需要设置一下XMLHTTP的头
    objXMLHttp.setRequestHeader("Content-Length",data.length);
    objXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=utf-8");
    objXMLHttp.send(data);
    }
    //处理回调函数
    if(typeof(callback) == "function" )
    {
    if (IsAsynchronous)
    {
    objXMLHttp.onreadystatechange = function ()
    {
    if (objXMLHttp.readyState == 4)
    {
    if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
    {
    callback(objXMLHttp,'');
    }
    else
    {
    alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
    callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
    }
    }
    }
    }
    else
    {
    if (objXMLHttp.readyState == 4)
    {
    if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
    {
    callback(objXMLHttp,'');
    }
    else
    {
    alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
    callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
    }
    }
    }
    }
    }
    }
    var DateTime = new function ()
    {
    var d = new Date();
    var s;
    s = d.getYear() + '-';
    s += (d.getMonth() + 1) + "-";
    s += d.getDate();
    this.Now = s;
    }
    /*--------------------------IE  FireFox 兼容------------------------*/
    //innerText
    if(typeof HTMLElement!="undefined"){
    HTMLElement.prototype.innerText
    getter = function(){
    return this.textContent;
    }

    HTMLElement.prototype.innerText
    setter = function(txtStr){
    this.textContent = txtStr
    }
    }

  • 相关阅读:
    06 | x86架构:有了开放的架构,才能打造开放的营商环境
    02 | 学习路径:爬过这六个陡坡,你就能对Linux了如指掌
    01 | 入学测验:你究竟对Linux操作系统了解多少?
    String、StringBuffer与StringBuilder区别
    JavaSE语言基础之字符串
    JavaSE语言基础之数组及其排序
    JavaSE语言基础之流程控制语句
    JavaSE语言基础之数据类型
    Java开发环境配置
    shell 脚本 自增
  • 原文地址:https://www.cnblogs.com/luchaoshuai/p/1153118.html
Copyright © 2011-2022 走看看