我创建了一个聊天室,该聊天室使用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);
}
答案 0 :(得分:1)
嗯,这是一个取决于答案的问题。
用定时请求轮询服务器并不是实现您想要实现的最佳方法。在这里,我建议使用WebSockets:https://developer.mozilla.org/en-US/docs/Glossary/WebSockets
但是回到您的问题。这取决于您的服务器及其承受的负载。假设您有十个活动用户。因此,您的服务器每秒大约需要10个请求-不会太多。
您可以运行一个基准测试,并查看服务器每秒可以处理多少个请求。但是处理请求不同于回答每个请求。
如果您的聊天中没有那么多用户,则使用这种方法可能会好的。对于更大的负载,我强烈建议切换到WebSockets。