每秒使用Ajax请求有多安全

每秒使用Ajax请求有多安全,ajax,refresh,settimeout,Ajax,Refresh,Settimeout,我已经创建了一个聊天室,它使用ajax请求通过setTimeOut函数每秒检查一次新消息,我实现了这一点,但我唯一的问题是,每秒之后从服务器请求数据可以吗?或者可能会引起一些问题?下面是我的代码: function refresh(){ setTimeout(function(){ $.ajax({ type: 'POST', url: 'checkNewMessage.php', data: { sender:$sender, recip

我已经创建了一个聊天室,它使用ajax请求通过setTimeOut函数每秒检查一次新消息,我实现了这一点,但我唯一的问题是,每秒之后从服务器请求数据可以吗?或者可能会引起一些问题?下面是我的代码:

function refresh(){
setTimeout(function(){
    $.ajax({
        type: 'POST',
        url: 'checkNewMessage.php',
        data: { sender:$sender, recipient:$recipient},
        success: function(response) {
          $('#newComm').val(response);
          if($('#newComm').val()>$('#oldComm').val()){

                  $.ajax({
                type: 'POST',
                url: 'appendNewMessage.php',
                data: { sender:$sender, recipient:$recipient},
                success: function(response) {
                  $("#chatRoom").prepend(response).fadeIn(4000);
                  $('#oldComm').val($('#newComm').val());
                }
            });

          }else{}
        }
    });
refresh();
},1000);

}

这个问题的答案取决于你

使用定时请求轮询服务器并不是实现您希望实现的目标的最佳方式。在这里,我建议使用WebSocket:

回到你的问题上来。这取决于您的服务器和它将承担的负载。假设您有十个活动用户。因此,您的服务器每秒将接收大约10个请求—不会太多

您可以运行基准测试,看看服务器每秒可以处理多少请求。但处理请求与回答每个请求不同


如果您的聊天室中没有那么多用户,您可能会同意这种方法。对于更大的负载,我强烈建议切换到WebSocket。

问题不在于频率,而在于服务器的总体容量以及可能发出请求的聊天客户端的数量。