2013-02-14 50 views
0

我有一个网页(在我们的内部网),提供应用程序的链接。但是,每个Weds都有一份工作。在1000小时。我想要做的是在达到所述时间时禁用页面上的链接,并在30分钟左右后启用。如何使用JavaScript根据特定日期和时间刷新页面?

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

这怎么能在javascript中完成?

+1

你认为你可以信任用户的挂钟时间吗? – 2013-02-14 16:43:07

+1

在此期间,为什么不能正确执行并重定向到“计划维护”启动画面? – Shmiddty 2013-02-14 17:09:08

+0

Shmiddty ...感谢您的建议。您建议的内容可能比在此期间启用/禁用超链接更容易。我使用了Alnitak代码,但它清除了屏幕并仅显示启用/禁用的链接。我可能做错了什么,但会继续工作!谢谢 – Vernon 2013-02-15 01:59:36

回答

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旨在确保它不会重复每一秒钟都会调用您的禁用/启用代码 - 只有在状态发生转换时才会这样。

请参阅http://jsfiddle.net/alnitak/B8u6f/查看运行示例,该示例每10秒切换一次状态,仅用于测试目的。

+0

感谢您的示例。除了使用我的启用/禁用链接显示的新网页外,只想在当前页面启用/禁用链接,如果可能的话 – Vernon 2013-02-14 23:53:33

+0

@Vernon在我的答案中没有特定的启用/禁用代码,您添加的代码必须是原因。你应该提出一个新的问题。 – Alnitak 2013-02-15 07:53:50

3

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

再不断刷新你的维护页面每隔30秒,检查状态,如果维护状态炫耀,重定向用户返回到主页

+0

这是一个内联网 - 他可能需要启用JS。 – Alnitak 2013-02-14 16:48:45

+0

@Alnitak我总是使用各种方式来破坏应用程序;)所以我们不能确定 – 2013-02-14 16:49:36

+0

是真的 - 但无论如何他也应该使用一些服务器端逻辑。正如其他人指出的那样,你不能总是依靠客户端时钟。 – Alnitak 2013-02-14 16:56:43

相关问题