在ASP.net中显示当前时间并让它滴答作响

时间:2012-07-24 19:48:24

标签: asp.net vb.net time timer

我的申请表中有要求显示日期和时间。 我在我的.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

谢谢!

1 个答案:

答案 0 :(得分:1)

我不建议你这样做,因为每次你想要刷新定时器(每秒)你实际上是在点击服务器以显示定时器。显然,这种方法的性能影响是负面的

此外,您正在使用 evil UpdatePanel,这意味着您每次都在执行整个页面生命周期。

如果您依赖客户端浏览器,则可以完成相同的行为:

$('#digital-clock').clock({offset: '0', type: 'digital'});
<ul id="digital-clock" class="digital">
  <li class="hour"></li>
  <li class="min"></li>
  <li class="sec"></li>
  <li class="meridiem"></li>
</ul>

参考:

http://joaquinnunez.cl/jquery-clock-plugin/