每秒使用Ajax请求有多安全

时间:2019-07-11 20:28:13

标签: ajax refresh settimeout

我创建了一个聊天室,该聊天室使用setTimeOut函数每秒使用ajax请求检查新消息,我实现了这一点,但是我唯一的问题是,每秒请求服务器数据是否正常?否则可能会引起一些问题?下面是我的代码:

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);

}

1 个答案:

答案 0 :(得分:1)

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

用定时请求轮询服务器并不是实现您想要实现的最佳方法。在这里,我建议使用WebSockets:https://developer.mozilla.org/en-US/docs/Glossary/WebSockets

但是回到您的问题。这取决于您的服务器及其承受的负载。假设您有十个活动用户。因此,您的服务器每秒大约需要10个请求-不会太多。

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

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