我有一个提供应用程序链接的网页(在我们的 Intranet 上)。但是,每个星期三都有一份工作。在 1000 小时。我想做的是在达到所述时间时禁用页面上的链接,并在 30 分钟左右后启用。
我已经创建了一个基于刷新来监控时间的函数。我想消除刷新并在后台监控时间,可以这么说(触发器)然后调用例程来禁用链接。完成后,重新激活链接。
这如何在javascript中完成?
我有一个提供应用程序链接的网页(在我们的 Intranet 上)。但是,每个星期三都有一份工作。在 1000 小时。我想做的是在达到所述时间时禁用页面上的链接,并在 30 分钟左右后启用。
我已经创建了一个基于刷新来监控时间的函数。我想消除刷新并在后台监控时间,可以这么说(触发器)然后调用例程来禁用链接。完成后,重新激活链接。
这如何在javascript中完成?
如果您采用 JavaScript 方法,如果用户的浏览器 JavaScript 被禁用,它将失败,如果需要,将维护状态保存在您的数据库中,即使我也这样做,当用户登陆我的网站时,我使用的第一个功能是检查维护状态,如果它在将他重定向到维护页面。
再次每 30 秒刷新一次维护页面并检查状态,如果显示维护状态,将用户重定向回主页
尽管您应该使用服务器端逻辑来防止在维护期间访问这些资源,但您可以通过使用计时器来提供帮助(例如setTimeout
每秒调用一次):
这是我刚刚敲出的一个程序,它似乎可以按要求工作:
(function() {
var state = null;
(function loop() {
var now = new Date();
var day = now.getDay();
var min = 60 * now.getHour() + now.getMinutes();
var disable = (day === 3 && (min >= 600 && min < 630));
if (disable !== state) {
if (disable) {
// call your disable code
} else {
// call your enable code
}
}
state = disable;
setTimeout(loop, 1000);
})();
})();
该state
变量旨在确保它不会每秒钟重复调用您的禁用/启用代码 - 仅当状态发生转换时。
有关每 10 秒切换一次状态的运行示例,请参见http://jsfiddle.net/alnitak/B8u6f/,仅用于测试目的。