每秒使用 Ajax 请求有多安全

How safe it is to use Ajax request for every second

我创建了一个聊天室,它使用 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);

}

好吧,这是一个取决于答案的问题。

使用定时请求轮询服务器并不是实现您想要实现的目标的最佳方式。在这个地方我推荐使用 WebSockets:https://developer.mozilla.org/en-US/docs/Glossary/WebSockets

但是回到你的问题。这取决于您的服务器及其要承担的负载。假设您有十个活跃用户。所以你的服务器每秒大约需要 10 个请求——不会太多。

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

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