在适当的时间生成回发

时间:2013-09-26 14:01:51

标签: c# asp.net asp.net-ajax

我有一个小型网络应用,可以显示不同时区的时间。时间计算似乎是正确的。我使用timer控件生成回发。

<asp:Timer ID="Timer1" runat="server" Interval="60000" OnTick="Refresh_Time">
</asp:Timer>

问题:

问题是页面刷新与服务器时钟不同步。例如,如果我在9.55.30 AM启动应用程序,则下一个回发位于9.56.30 AM所以,现在,我要观察服务器时钟并在0时启动应用程序秒。像9.57.00 AM这样的东西。显然,它永远不会100%准确。

理想情况下,我正在寻找的是,无论何时运行应用9.55.15 AM9.55.45 AM,下一次回发都应发生在9.56.00 AM。任何帮助表示赞赏。

修改

解决问题的代码

protected void Page_Load(object sender, EventArgs e)
{        
    Timer1.Interval = 1000*(60 - DateTime.Now.Second);

}

2 个答案:

答案 0 :(得分:0)

在您的代码的page_load中,您需要计算发送给客户端的实际间隔并将其设置在那里。

答案 1 :(得分:0)

你有没有考虑过,在你的Refresh_Time方法中,让服务器做一些等待回发,直到达到分钟?

此外,I quickly found an existing question on 'push' notifications in ASP.NET。这也是一个不错的选择,因为您无法假设客户端可以知道它在服务器上的时间。