欢迎光临
我们一直在努力

如何用javascript实现的简约聊天框

这篇文章主要讲解了“如何用javascript实现的简约聊天框”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用javascript实现的简约聊天框”吧!

用JavaScript实现的轮询的优点和缺点:

  1. 优点:很容易实现,不需要任何服务器端的特定功能,且在所有的浏览器上都能工作。

  2. 缺点:这种方法很少被用到,因为它是完全不具伸缩性的。试想一下,在100个客户端每个都发出2秒钟的轮询请求的情况下,所损失的带宽和资源数量,在这种情况下30%的请求没有返回数据。

代码实现:页面使用了 Uediter 编辑器,后台存储最新消息,获取最新消息

rootroom.js

var login = true;
//发送请求函数
function sendRequest()
{
  if (ueditor.hasContents()) {
    ueditor.sync();
    $("#chatMsg").val(ueditor.getContent());
  }
  //input是个全局变量,就是用户输入聊天信息的单行文本框
  var chatMsg = $("#chatMsg").val();
  var datas="chatMsg=" + chatMsg;
  $.ajax({
    type: "post",
    url: "/chat",
    data: datas,
    datatype: "text",
    success:function(data){
      if(data=="nologin")
      {
        login=false;
        alert("您还没有登录,请先登录");
        window.location.href="/index.jsp";
      }
      else
      {
        login=true;
        //使用chatArea多行文本域显示服务器响应的文本
        $("#chatArea").html(data);
      }
      //清空输入框的内容
      $("#chatMsg").val("");
      ueditor.setContent("");
    }
  });
}
function sendEmptyRequest()
{
  var datas="";
  $.ajax({
    type: "post",
    url: "/chat",
    data: datas,
    datatype: "text",
    success:function(data){
      
      if(data=="nologin")
      {
        login=false;
        alert("您还没有登录,请先登录");
        window.location.href="/index.jsp";
      }
      else
      {
        login=true;
        //使用chatArea多行文本域显示服务器响应的文本
        $("#chatArea").html(data);
      }
    }
      
  });

  //指定0.8s之后再次发送请求
  if(login==true)
  {
    setTimeout("sendEmptyRequest()" , 800);
  }
}

function enterHandler(event)
{
  //获取用户单击键盘的“键值”
  var keyCode = event.keyCode ? event.keyCode 
    : event.which ? event.which : event.charCode;
  //如果是回车键
  if (keyCode == 13)
  {
    sendRequest();
  }
}

感谢各位的阅读,以上就是“如何用javascript实现的简约聊天框”的内容了,经过本文的学习后,相信大家对如何用javascript实现的简约聊天框这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云搜网,小编将为大家推送更多相关知识点的文章,欢迎关注!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。