Javascript XMLHttpRequest仅在检测到数据库更改时刷新
所以基本上,我的ajax函数一直在刷新,我希望它在检测到数据库发生更改时刷新。有没有办法做到这一点?多谢各位 我的代码:Javascript XMLHttpRequest仅在检测到数据库更改时刷新,javascript,xml,xmlhttprequest,Javascript,Xml,Xmlhttprequest,所以基本上,我的ajax函数一直在刷新,我希望它在检测到数据库发生更改时刷新。有没有办法做到这一点?多谢各位 我的代码: function ajax(){ var req = new XMLHttpRequest(); req.onreadystatechange = function(){ if (req.readyState == XMLHttpRequest.DONE && req.status == 200) {
function ajax(){
var req = new XMLHttpRequest();
req.onreadystatechange = function(){
if (req.readyState == XMLHttpRequest.DONE && req.status == 200) {
document.getElementById('chat').innerHTML = req.responseText;
}
}
req.open('GET', 'chat.php', true);
req.send();
return false;
}
setInterval(function(){ajax();}, 100);
如果希望进行服务器推送,可以使用或,而不是使用XMLHttpRequest从客户端进行轮询 您必须在服务器端检测数据库中的更改,然后使用SSE或websocket将更改推送到网页上,或者只发送一个标记表示已发生更改,然后使用XHR从网页中提取更改,就像您现在所做的那样
我对您的设置不太了解,无法制作代码示例,但interwebs上有很多示例,展示了如何使用SSE或websocket来实现这一点。仅使用ajax不。请考虑使用websocket或服务器事件API