1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

创建一个XMLHTTP对象可否在同一页多次使用?

本帖由 tianyinwolf2007-09-10 发布。版面名称:前端开发

  1. tianyinwolf

    tianyinwolf New Member

    注册:
    2006-04-11
    帖子:
    39
    赞:
    0
    在一个页面创建一个XMLHTTP对象后,在这个页面是否可以多次使用?

    我在测试的时候创建一个对象后在同一个页面多次调用这个对象,但只能显示最后一次调用的结果。

    而前面的调用却没有结果显示。

    我在每次调用函数最后用obj.delete()来删除本次调用,在新的调用函数中再重新创建也无法达到效果。

    不知道要如何处理,请各位帮忙解答。谢谢!

    var xmlHttp;
    var returnList;
    function createXMLHttpRequest()
    {
    if (window.ActiveXObject){
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest){
    xmlHttp = new XMLHttpRequest();
    }
    }

    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    // 第一个调用实例
    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    function noticeRequest()
    {
    createXMLHttpRequestNotice(); ‘每次调用重新创建对象;
    xmlHttp.onreadystatechange = handleStateChangeNotice;
    xmlHttp.open("GET","_GetNotice.asp");
    xmlHttp.send(null);
    xmlHttp.delete(); //这一句加了和没有加效果都是一样;
    }

    function handleStateChangeNotice()
    {
    if (xmlHttp.readyState == 4){
    if (xmlHttp.status == 200){
    returnList = xmlHttp.responseText;
    document.getElementById("NoticeList").innerHTML = returnList;
    }
    }
    }

    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    // 第二个调用实例
    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    function recommendRequest()
    {
    createXMLHttpRequest(); ‘每次调用重新创建对象;
    xmlHttp.onreadystatechange = handleStateChangerecommend;
    xmlHttp.open("GET","_GetRecommend.asp");
    xmlHttp.send(null);
    }

    function handleStateChangerecommend()
    {
    if (xmlHttp.readyState == 4){
    if (xmlHttp.status == 200){
    returnList = xmlHttp.responseText;
    document.getElementById("RecommendList").innerHTML = returnList;
    }
    }
    }

    以上两个调用实例 noticeRequest recommendRequest 调用后只能显示 recommendRequest 的调用结果!如果要让两个实例的调用都正常显示,要怎么改进这段代码?请各位帮帮忙.