我有
- 1-数据库中的多个单元
- 每个单元都有自己的更新时间(以秒为单位)
- 具有动态内容的网页
- 目前每次调用时都会嵌入自动刷新(2分钟),见下文
function refreshPage(){
minutes = 2;
seconds = 0;
interval=120000;
getCheckedUnits(); //call to function that checks and updates stuff
}
function timedRefresh(timeoutPeriod) {
//refreshPage();
setInterval(refreshPage, timeoutPeriod);
countdown('countdown');
}
var interval;
var minutes = 2;
var seconds = 0;
function countdown(element) {
interval = setInterval(function() {
var el = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
el.innerHTML = "Waiting for refresh";
clearInterval(interval);
return;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
} else {
var minute_text = '';
}
var second_text = seconds > 1 ? 'seconds' : 'second';
el.innerHTML = 'Page will auto-refresh in: ' + minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
seconds--;
}, 1000);
}
我需要做的是使其对用户透明并根据需要调用更新(我有在数据库中设置的值)。
作为一种解决方案(在 JS-Ajax 中),我可以使用与上面相同的计时器(将其设置为 5 秒)并创建一个包含存储 id、上次更新时间和下次更新时间的对象的数组。然后我只能在当前时间大于下一次更新时间时更新每个对象。或者我可以通过 cron-job 来处理这个方法。
我以前从未这样做过,我想听听基于经验的意见。什么是最好的选择?