1

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

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

问题:

问题是页面刷新与服务器时钟不同步。例如,如果我在 0 开始了应用程序9.55.30 AM,那么下一个回发是在9.56.30 AM0 秒时。所以,现在,我必须观察服务器时钟并在 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);

}
4

2 回答 2

0

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

于 2013-09-26T14:14:25.933 回答
0

您是否考虑过,在您的 Refresh_Time 方法中,让服务器进行某种等待以回发,直到它到达分钟?

此外,我很快发现了一个关于 ASP.NET 中“推送”通知的现有问题。这也可能是一个不错的选择,因为您不能假设客户端可以知道服务器上的时间。

于 2013-09-26T14:18:38.807 回答