我有一小段Javascript,我想每隔几秒钟轮询一次服务器并更新DOM。

function updateCard() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            card = JSON.parse(this.responseText);
            document.getElementById("season").innerHTML = card.season;
        }
    };
    xhttp.open("GET", "/curr_card/", true);
    xhttp.send();
}
window.onload = updateCard;
window.setInterval(updateCard,2000);


在大多数浏览器上会发生这种情况。对updateCard的一些一次性调用,但总体而言,服务器每位客户端每秒显示〜1/2连接。

但是,当我在Android(49.0)上的Firefox中访问该页面时,浏览器开始连续每秒轮询数十次/curr_card/

我见过有人建议用window.setInterval(function() {updateCard();},2000);代替setInterval行,这无济于事。

我对Javascript和AJAX还是很陌生,所以不知道为什么会这样。这是FF中的错误吗?如果需要,我可以发布更多代码。

提前致谢。

最佳答案

经过测试并在OP的评论中进行讨论后,我们得出结论,这肯定是OP的HTC M7上特定于Firefox的问题,因为无法在Galaxy S7的同一版本Firefox上复制该问题。

09-25 18:59