【问题标题】:XMLHttpRequest refresh only when a change on database is detectedXMLHttpRequest 仅在检测到数据库更改时刷新
【发布时间】:2021-04-12 16:52:43
【问题描述】:

所以基本上我的 ajax 函数一直在刷新,我希望它只是在检测到数据库更改时刷新。有没有办法做到这一点?谢谢

我的密码:

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

【问题讨论】:

  • 单独使用 ajax 没有。研究使用 websockets 或服务器事件 API 的

标签: javascript xml xmlhttprequest


【解决方案1】:

如果您想要服务器推送,您可以使用Server Sent EventsWebsocket,而不是使用 XMLHttpRequest 从客户端轮询。

您必须在服务器端检测数据库中的更改,然后使用 SSE 或 websocket 将更改推送到网页,或者发送一个已更改的标志,然后拉像现在一样使用 XHR 从网页更改。

我对您的设置了解不多,无法为您提供一些代码示例,但互联网上有很多示例展示了如何使用 SSE 或 websocket 来做到这一点。

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 2016-09-24
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2011-09-13
    相关资源
    最近更新 更多