jQuery基于当前rest第二次每分钟自动刷新并基于PC时间更新

继续这个问题

我有JSfunction每隔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); 

此function运行正常。 因此,该函数将基于其余秒数每60秒(1分钟)运行一次。 示例我在18:51:30刷新页面然后我们现在剩下的时间是30秒。 满足60秒后再运行ajax刷新。

但是,当我尝试直接更改日期时间PC(Raspberry Pi 3)时遇到问题。 示例:我设置18:53:40,然后我可以看到raspberry pc更新了。 但每60秒的function是不正确的。

我想要的是,无论我改变什么时间,所以JS函数知道rest60秒后剩下多少秒,然后运行自动刷新function。

更新

检查后,我发现问题是

例:

 Time1: Current time: 18:30:15 

然后我改变了

 Time2: To be: 18:30:01 

autorefresh函数仍然读取我更改的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);