0

我有一个提供应用程序链接的网页(在我们的 Intranet 上)。但是,每个星期三都有一份工作。在 1000 小时。我想做的是在达到所述时间时禁用页面上的链接,并在 30 分钟左右后启用。

我已经创建了一个基于刷新来监控时间的函数。我想消除刷新并在后台监控时间,可以这么说(触发器)然后调用例程来禁用链接。完成后,重新激活链接。

这如何在javascript中完成?

4

2 回答 2

3

如果您采用 JavaScript 方法,如果用户的浏览器 JavaScript 被禁用,它将失败,如果需要,将维护状态保存在您的数据库中,即使我也这样做,当用户登陆我的网站时,我使用的第一个功能是检查维护状态,如果它在将他重定向到维护页面。

再次每 30 秒刷新一次维护页面并检查状态,如果显示维护状态,将用户重定向回主页

于 2013-02-14T16:43:36.640 回答
0

尽管您应该使用服务器端逻辑来防止在维护期间访问这些资源,但您可以通过使用计时器来提供帮助(例如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/,仅用于测试目的。

于 2013-02-14T16:43:41.497 回答