继续此问题
我有JS功能每60秒刷新Ajax。
var fetchData = function()
{
$.ajax(
{
url: "chkProfile.php",
type: "POST",
data:
{
},
dataType: "JSON",
success: function (jsonStr)
{
}
});
}
fetchData();
var remainTime = 60 - parseInt((new Date().getTime() / 1000) % 60);
setTimeout(function()
{
fetchData();
setInterval(fetchData, 60000);
}, remainTime*1000);
此功能运行正常。因此,该功能将根据其余秒的时间运行一次每60秒(1分钟)。例如,我在18:51:30刷新页面,然后我们现在要走30秒。见面后60秒后运行Ajax刷新。
但是,当我尝试直接更改日期时间PC(Raspberry Pi 3)时,面临问题。示例:我设置了18:53:40,然后我可以看到Raspberry PC更新了。但是每60秒的功能不正确。
我想要的是,无论我更改时间,JS函数都知道60秒钟,在见面60秒之后,然后运行自动刷新功能。
更新
检查后,我发现问题是
示例:
Time1: Current time: 18:30:15
然后我更改
Time2: To be: 18:30:01
函数自动化仍然读取我更改的time1不是time2。因此,自动刷新将基于Time1刷新。
尝试以下方法:
var fetchData = function(){
$.ajax({
url: "chkProfile.php",
type: "POST",
data:
{
},
dataType: "JSON",
success: function (jsonStr)
{
}
});
}
fetchData();
setInterval(function(){
var second = parseInt((new Date().getTime() / 1000) % 60);
if(second === 0) {
fetchData();
}
},1000);