如何在asp.net中每小时显示一次?

时间:2009-09-08 07:13:42

标签: asp.net algorithm

如何在asp.net中每小时显示一次?

仅在一小时的开始时间显示messese的示例?

  

我用于asp.net ajax定时器控件?


protected void Timer1_Tick(object sender, EventArgs e)
{
    MessageBoxShow(Session["playsound"].ToString());
    Session["playsound"] = 1;
}

但总是空?

---------------------------
Message from webpage
---------------------------
Object reference not set to an instance of an object.
---------------------------
OK   
---------------------------

6 个答案:

答案 0 :(得分:1)

听起来你的会话可能已经超时了。如果在AJAX调用之间,您的会话在服务器上到期,则ToString调用可能在空引用上运行:

MessageBoxShow(Session["playsound"].ToString());

这似乎与AJAX客户端脚本试图告诉您的内容一致。

这也可能是Session["playsound"];未初始化的结果。

ASP.NET的默认会话到期持续时间为20分钟,如果您正在执行一小时计时器,请注意这一点。

答案 1 :(得分:0)

在客户端?

我知道这样做的唯一方法是通过javascript计时器。

答案 2 :(得分:0)

您可以使用

window.setInterval

方法

它重复调用一个函数,每次调用该函数之间都有固定的时间延迟。

intervalID = window.setInterval(func, delay[, param1, param2, ...]);

阅读更多信息

window.setInterval

答案 3 :(得分:0)

这样做的一种方法是使用NextTime的会话变量来显示页面上的项目。如果它的null可以立即显示该项(或者安排NextTime)。在每次刷新页面时,如果当前时间在下一个时间之后,则显示该项目并将NextTime会话变量重置为下一个小时。

这仅在用户浏览网站并刷新页面时才有效。

答案 4 :(得分:0)

您可以使用javascript变量window.name,它在页面刷新之间保持其值。

您可以在其中存储“上次检查时间”并将其与当前时间进行比较。

如果用户导航到另一个站点并且该站点清除了此变量,则返回到原点。

答案 5 :(得分:0)

一个简单的答案是使用一个小cookie来存储原始时间,然后每隔一段时间查询一次(约5分钟?),这样会话就不会耗尽,如果用户离开,你就不是SOL页面(如果这是你想要的)。

免责声明:尽管我整个夏天都在编写ASP.net,但我还没有真正把我的脚趾浸入AJAX,所以请原谅我,如果这是不可能的。