(ASP.NET AJAX)如何在触发事件后禁用自动收报机?

时间:2009-09-28 22:02:36

标签: ajax asp.net-ajax timer

因此,我正在实施一项功能,即用户访问我的网站后,并且未登录且未注册超过两分钟,会弹出一个警告并要求他们进行调查。

我同意,很烦人,但这是一项业务要求。

我考虑过做一个会话对象,然后在标题的page_load中(因为它在每个页面上)检查当前时间是否大于会话中的时间。

但是,这只会在页面加载时触发。我需要它才能在两分钟内弹出。

所以我查看了ASP.NET AJAX计时器,这似乎可以解决问题。

我的问题是你如何禁用它?因为现在它只是每隔20秒发射一次,这就是我目前的间隔时间。

我想过可能会设置一个cookie,如果cookie不存在则显示它,否则不会。

只是想知道是否有其他人对此有任何见解。

谢谢你们!

2 个答案:

答案 0 :(得分:0)

您可以使用JavaScript windows.setTimeOut方法,该方法将在指定任何时间后正好触发一次。

window.setTimeOut(foo,2000); 

以上将在2秒后调用foo JavaScript函数。

谢谢,

答案 1 :(得分:0)

azamsharp显示的setTimeout()方法存在的问题是,只有当用户在两分钟内停留在同一页面时,它才有效。

如果你有不同的页面,你可能需要实现一个涉及asp.net会话和客户端脚本的解决方案,例如:

  • 在必须显示警报时在会话中存储DateTime
  • (在每个页面上)从javascript调用page-method(例如每5秒)检查警报是否到期,如果到期则显示警告
  • 将javascript部分(pagemethod的调用)放入一个公共母版页,并将其用于每个asp.net页面