【发布时间】:2012-07-24 19:48:24
【问题描述】:
我的申请要求显示日期和时间。 我在我的 .net 应用程序中使用 Ajax 来执行此操作。
目前我有这个代码
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer ID="UpdateTimer" runat="server" Interval="1000" OnTick="UpdateTimer_Tick" />
<asp:UpdatePanel ID="TimedPanel" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label runat="server" ID="DateStampLabel" />
</ContentTemplate>
</asp:UpdatePanel>
刷新页面时除了延迟一秒外,它工作得很好。我的问题是,这是实现这一目标的最佳方法吗?我也许可以不显示秒数而侥幸……这可能不太重要。如果我这样做,我应该怎么做?
这里是代码隐藏...
Protected Sub UpdateTimer_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
DateStampLabel.Text = DateTime.Now.ToString()
End Sub
谢谢!
【问题讨论】:
-
你想显示服务器时间还是客户端时间? (如果是后者,仅使用 javascript 解决方案会是更好的选择)
-
或者,在返回的 HTML 中显示服务器的时间,但使用 Javascript 将该时间与本地机器进行比较,然后根据本地时钟每秒更新一次,因此它将显示服务器的时间而不需要投票。
-
好问题。这真的没关系,因为这将在公司的 Intranet 上使用。我不确定...我猜客户可能是最好的...
-
对于任何将来引用此内容的人来说,Jupaol 是正确的,因为客户端解决方案在几乎所有方面都更有效。但是,要解决刷新页面时延迟一秒的问题,您可以在 Page_Load 事件或在页面之前执行的任何其他页面事件中设置 DateStampLabel.Text = DateTime.Now.ToString()发送给客户端。