2

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

谢谢!

4

1 回答 1

0

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

而且您正在使用邪恶 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/

于 2012-07-24T19:55:47.467 回答