我正在建立一个天气数据实时网站,使用的是捐赠给我的模板。它应该每5秒钟或我设置的任何时间刷新一次元素数据,但是在每个浏览器中,我必须刷新或强制刷新,甚至删除所有历史记录,Cookie等,以获取最新数据。我真的不想刷新整个页面。

$(document).ready(function() {
     windspeed();
});

function windspeed() {
    $('#windspeed').load('windspeed.php');
}
var refreshId = setInterval(windspeed, 5000);

最佳答案

问题是:您正在同时执行多个URL请求,因为您正在使用setInterval。请改用setTimeout,但仅在url请求完成时使用。

您必须用.load替换$.ajax方法,因为它具有成功回调:

var refreshId;

$(document).ready(function() {
    windspeed();
});

function windspeed() {
    $.ajax({
        cache: false,
        success: function(response) {
            $('#windspeed').html(response);
            setTimeout(windspeed, 5000);
        },
        type: 'GET',
        url: 'windspeed.php'
    });
}

关于javascript - RefreshID = setinterval无法正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38543789/

10-09 14:34