我已经使用Ajax每秒获取div的数据,以防有新的插入数据,但这会导致服务器在大约10秒内崩溃。如何在不使用这么多资源的情况下每秒编写一个脚本来刷新div。
以下是具有完整功能的代码,但似乎仍然存在错误
function checkForMessages(friends_id, id) {
$.ajax({
url: "../fetch_chat.php",
type: "POST",
data: "current_user="+friends_id+"&friends_id="+id,
success: function(data) {
$('#chatContainer').html(data);
var div = document.getElementById('chat_post_container');
div.scrollTop = div.scrollHeight;
},
complete: function(data){
checkForMessages(friends_id, id);
},
error: function() {
alert('ERROR');
}
});
}
答案 0 :(得分:1)
尝试检查上次请求是否完成,然后在一秒后调用下一个Ajax请求。 这将平衡服务器上的负载。 如果可能刷新使用signalR。
或者 你可以使用设定的间隔 例如
setInterval(function(){
//code goes here that will be run every 5 seconds. }, 5000);
答案 1 :(得分:1)
你应该在Socket.io或React.js的帮助下做到这一点,技术正在发生变化,所以我们也应该改变我们的做事方式。
这可能会对你有所帮助。