看了很多 ajax刷新  还有frame隐藏  头晕,不知从何下手  我的结构是 把聊天内容塞进数据库然后再取出打印出来(网上看的说application存储聊天内容比较浪费资源,数据库呢 因为用的人不是很多,也就无所谓了 )哪位前辈指点一二或有原程序最好啦~@~嘿嘿

解决方案 »

  1.   

    用ajax吧
    iframe没有ajax好用
      

  2.   

    - -!就是想问ajax怎么下手啊,var load=XmlHttp....load.open("","","","")
    load.send();我只知道这么点我是初学..没见过ajax刷新 真的一头雾水
      

  3.   

    你直接调用ajax.dll就可以,不过我是用异步回调即实现 ICallbackEventHandler接口实现的
      注意,每次取的都是新的消息,否则数据库受不了,不过每隔三秒钟刷新一次,数据库压力还是比较大,我是把数据存在一个对象里,从这个对象取
    后台cs文件:
     protected string FormatMessage(IList<MessageRecord> list)
      {
        if (list.Count == 0) return "";
        string temp = "";
        foreach (MessageRecord i in list)
        {
          temp += "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" width=\"100%\">";
          temp += "<tr>";
          temp += "<td align=\"left\" width=\"100%\">";
          if (i.ReceiveOrSend == true)
            temp += i.ChatTo + "对我说:";
          else
            temp += "我对" + i.ChatTo + "说:";
          temp += i.SendTime + "</td>";
          temp += "</tr>";
          temp += "<tr>";
          temp += "<td width=\"100%\" align=\"left\"><font color=\"#c66fff\">";
          temp += i.Content + "</font></td></tr></table>";
        }
        return temp;
      }
      #region ICallbackEventHandler 成员  public string GetCallbackResult()
      {
        return FormatMessage(MessageTalking.GetMessageTalking(ChatTo).NewSessionCollection(ChatTo));
      }  public void RaiseCallbackEvent(string eventArgument)
      {
      }  #endregion前台:
    <script type="text/javascript" language="javascript">  
      function <%#this.ClientID%>_CallBack(){
         <%# Page.ClientScript.GetCallbackEventReference( this, "", this.ClientID + "_GetResult", "")%>;  
      }
      
      function <%#this.ClientID%>_GetResult(result){
        if(result!="")
        {
          document.getElementById("TestSession1").innerHTML+=result;     
          document.getElementById("TestSession1").scrollTop +=99999999; 
                   
        }
      }    
    //每隔三秒钟刷新一次,取新的数据
      i=window.setInterval("<%#this.ClientID%>_CallBack()",3000);