用ajax如何实现网页私聊,而且数据如何设计才合理,要有聊天记录功能

解决方案 »

  1.   

    每个客户端递交的AJAX请求都带上客户端编号,递交的服务器后由服务器分析是哪个客户端的请求和发送什么数据。
    客户端主动获取服务器发送给他的消息。
      

  2.   

    我使用jquery的ajax做个简单的例子,用js自带的setTimeout方法,重复调用ajaxRequest()方法function ajaxRequest(){
      $.ajax{
         type: "post",
         url: '',//
         data : {   },//请求参数
         success: function(data, textStatus){
             //处理数据
         }
      setTimeout('ajaxRequest()',1000);//1秒后执行
    }
    $(document).onReady(function(){
        ajaxRequest();
    });
      

  3.   

    function ajaxRequest(){
      $.ajax{
         type: "post",
         url: '',//
         data : {   },//请求参数
         success: function(data, textStatus){
             //处理数据
         }
      }
      setTimeout('ajaxRequest()',1000);//1秒后执行}
    $(document).onReady(function(){
        ajaxRequest();
    });
      

  4.   

    为啥放不下呢?把聊天的记录都放在一个textArea标签里面来一个聊天,就在后面叠加.如果做的简单点的话,数据库字段不需要很多,聊天这一块的字段包括
    1:信息编号
    2:信息内容;
    3:发送者;
    4:发送时间
      

  5.   

    聊天记录放在textArea标签而不是放在数据库,那如果用户下次登录的话不是就不能看的记录了
      

  6.   

    即时消息通讯,必定会用到服务器端的推送,COMET技术还是有不少的需要和客户端建立http的长连接,虽然底层都是轮询实现,但是通讯的数据量还是和普通的setTimeout定时器有很大差距。聊天纪录的存放,视业务而定,如果业务上有聊天纪录数据分析的需要,就存在服务器端,不然就存放在客户端。
    存放在服务器端,建议最好是文件存储,定期压缩备份,没必要存关系型数据库
    存放在客户端,由于安全的限制,WEB应用是无法读写客户端的磁盘的,只能往cookie中写,有浏览器的存储空间的限制,如果客户端只针对高版本的浏览器的话,还可以往支持HTML5本地存储数据库中写。
      

  7.   

    私聊确实不好做啊~~~~~javase的方便多了·~~~可是总是不喜欢定时器