Javascript 在固定时间使用Jquery刷新Div
我有一个php脚本,它告诉我下一辆公交车什么时候到,现在我正在使用jquery每隔一分钟左右将它刷新到一个div中。现在,因为我知道在总线到达后数据将更改的时间,所以我希望它在此时或之后刷新div,这并不重要 我应该指出,我对js还相当陌生,但到目前为止,我得到的是: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 =
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时,它的值是多少?还要注意的是,第二个变量不应该在那里——您没有重新声明变量,只是更改了它的值。