Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在固定时间使用Jquery刷新Div_Javascript_Jquery_Ajax_Refresh - Fatal编程技术网

Javascript 在固定时间使用Jquery刷新Div

Javascript 在固定时间使用Jquery刷新Div,javascript,jquery,ajax,refresh,Javascript,Jquery,Ajax,Refresh,我有一个php脚本,它告诉我下一辆公交车什么时候到,现在我正在使用jquery每隔一分钟左右将它刷新到一个div中。现在,因为我知道在总线到达后数据将更改的时间,所以我希望它在此时或之后刷新div,这并不重要 我应该指出,我对js还相当陌生,但到目前为止,我得到的是: var nextbustime = $('#bus').contents(); var nextbustime = new Date(nextbustime); var now = new Date(); var t =

我有一个php脚本,它告诉我下一辆公交车什么时候到,现在我正在使用jquery每隔一分钟左右将它刷新到一个div中。现在,因为我知道在总线到达后数据将更改的时间,所以我希望它在此时或之后刷新div,这并不重要

我应该指出,我对js还相当陌生,但到目前为止,我得到的是:

    var nextbustime = $('#bus').contents();
var nextbustime = new Date(nextbustime);
var now = new Date();

var t = nextbustime.getTime() - now.getTime();


var refreshId = setTimeout(function()
{
    $('#bus').fadeOut("slow").load('modules/bus.php?randval='+ Math.random()).fadeIn("slow");
}, t);
div最初是用一个php include加载的。当然,我所做的根本不起作用

我需要一些循环吗?我需要刷新时间计算器吗

请帮忙


提前感谢…

既然您正在使用jQuery,请在此处查看此jQuery插件:

我从您的声明中假设代码在第一次刷新时有效?你需要做的是处理接下来的几个问题。由于时间可能会有所不同,因此setInterval可能不适用于您。应该做的是在每次超时结束时再次调用函数

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

function changeToNextBus() {
    var nextbustime = $('#bus').contents();
    var nextbustime = new Date(nextbustime);
    var now = new Date();

    var t = nextbustime.getTime() - now.getTime();

    var refreshId = setTimeout(function()
    {
        $('#bus').fadeOut("slow").
                  load('modules/bus.php?randval='+ Math.random()).
                  fadeIn("slow");
        changeToNextBus();
    }, t);
}

不,它在第一次刷新时不起作用,这是问题的一部分。。。我只是尝试了你的建议和变化,它导致了一个大的ol'循环。。。无论如何谢谢你@Ben C,t的值是否与您希望刷新的秒数相符?我不确定你要如何在没有循环的情况下做到这一点-这不是重点吗?您只需要循环只在设定的时间间隔内发生。另外,正在加载的JavaScript是否在bus.php中?还是在别的地方?我的代码假设在别处。当您第一次设置nextbustime时,它的值是多少?还要注意的是,第二个变量不应该在那里——您没有重新声明变量,只是更改了它的值。