用ajax实现如下功能:
用ajax向页面C_S_Talk.aspx发送HTTP Request然后把返回的HTTPRequest.ResponceText显示出来。我设了一个客户端的按钮(不回传的),每按一次就做一次上面的过程。代码如下:
C_S_Talk.aspx.cx的代码:
省略,功能测试后是完好的,总之是会返回一个字符串,根据当前时间的不同会返回不同的字符串,问题跟这个后台代码关系不大ajax引擎代码:function send_request(url,readystatechange) 
{//初始化、指定处理函数、发送请求的函数
  http_request = false;
  //开始初始化XMLHttpRequest 对象
  if(window.XMLHttpRequest)
   { //Mozilla 浏览器
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType)
      {//设置MiME 类别
        http_request.overrideMimeType("text/xml");
       }
    }
   else if (window.ActiveXObject)
    { // IE 浏览器
      try
       {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
       }
        catch (e)
         {
           try
            {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
           catch (e) {}
          }
      }
if (!http_request) 
{ //异常,创建对象实例失败
  window.alert("不能创建XMLHttpRequest 对象实例.");  
  return false;
}
http_request.onreadystatechange = readystatechange;
//确定发送请求的方式和URL 以及是否同步执行下段代码
http_request.open('GET', url, true);
http_request.send(null);
}Ajax返回值处理函数:function processRequest() 
{
    if (http_request.readyState == 4) 
    { // 判断对象状态
        if (http_request.status == 200) 
        { // 信息已经成功返回,开始处理信息
            var l_newMessage = http_request.responseText;
            if ((l_newMessage != "")&&(l_newMessage != null))    
            {
                //播放声音
                //playSound("http://223.223.217.37/Sound/newalert.wma");
                var l_SoundControl = document.getElementById("soundControl");
                l_SoundControl.play();
                //  //确定滚动条位置
                //  var l_form_scrollposition = document.getElementById("Panel2").scrollTop;
                 var l_form_innerHtml = document.getElementById("Label2").innerHTML;
                 if (l_form_innerHtml != "")
                 {
                     l_form_innerHtml = l_form_innerHtml.replace("<table>","");
                     l_form_innerHtml = l_form_innerHtml.replace("</table>","");
                 }
                 document.getElementById("Label2").innerHTML = "<table>" + l_form_innerHtml + "</table>" + "<table>" + l_newMessage + "</table>";   
                if (l_newMessage != "")
                {
                       //把滚动条置到最下方  
                        document.getElementById("Panel2").scrollTop = document.getElementById("Panel2").scrollHeight;
                }
                //  else
                //  {
                //  //滚动条在原地不动
                //  document.getElementById("Panel2").scrollTop = l_form_scrollposition;
                //  }
                  //把焦点置回TextBox1
                document.getElementById("TextBox1").focus(); 
           }
           
        } 
        else
        { //页面不正常
            alert("您所请求的页面有异常。");
        }
    }
}Ajax引擎调用函数:function GetNewMessage()
{
    //  String l_LastChatTime = "2008-06-22 17:34:43";
    //  send_request('Custom_Support_Char_Support.aspx?LastChatTime=' + l_LastChatTime);
    var l_View3Activited = document.getElementById("Text4").value.toString();
    if  (l_View3Activited == "View4")
    {
        var l_DID = document.getElementById("Text1").value.toString();
        var l_MYID = document.getElementById("Text2").value.toString();
        var l_ComID = document.getElementById("Text3").value.toString();
        send_request('C_S_Talk.aspx?DialogID=' + l_DID + '&MyID=' + l_MYID + '&CompanyID=' + l_ComID,processRequest);
    }
}按钮执行函数:function trytry()
{
    GetNewMessage();
}按钮代码:
<input ID="Button1" type="button" value="button"  onclick="trytry()"/>出现的异常问题描述:
第一次按按钮,一切正常,C_S_Talk后台代码被顺利执行,值顺利返回并显示,第一次http_request.responseText的值暂记为string1
第二次按按钮,异常,通过代码跟踪发现C_S_Talk未被执行,http_request.responseText的值依旧是第一次的值,并没有发生变化。
往后的每一次按按钮都不再执行C_S_Talk后台代码,http_request.responseText的值永远保持第一次的值不变请问高手这是怎么回事〉?是不是在处理完返回值后对HTTPRequest要做一些什么处理?否则它就不再起作用?