我需要在 8 小时内每 5 分钟调用一次函数。问题是它必须是同一天。例如,如果用户在 3/29 晚上 11:59 登录系统,而现在是 3/30 凌晨 12:01,则不应再调用该函数。
我知道如何每 5 分钟调用一次,并对 jQuery ajax 调用进行编码;那部分很好。我的问题是计算日期。
这是代码:
var startDay;
function keepAlive(currDay) {
var today = new Date().getDate();
if (currDay == today) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{ alive: 'true' }",
url: "../ses/imsi_ses_edit.aspx/KeepSessionAlive",
dataType: "json",
success: function(data) {
},
error: function(response) {
alert(response.responseText);
}
});
}
}
window.onload = function() {
startDay = new Date().getDate();
keepAlive(startDay); //Make sure the function fires as soon as the page is loaded
setTimeout(keepAlive, 300000); //Then set it to run again after five minutes
}
最佳答案
var initDate = new Date(); // Or get the user login date from an HTML element (i.e. hidden input)
var interval;
function keepAlive() {
// Do stuff (ajax call)
}
window.onload = function() {
keepAlive();
interval = window.setInterval(function() {
var now = new Date();
if(now.getTime() - initDate.getTime() < 8*60*60*1000 && now.getDate() == initDate.getDate()) {
keepAlive();
}
else {
// Stop the interval
window.clearInterval(interval);
}
}, 5*60*1000);
}
关于JavaScript/jQuery 每 5 分钟调用一次函数,持续 8 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929023/