如何在 asp.net 中使用计时器控制

本文关键字:计时器 控制 net asp | 更新日期: 2023-09-27 18:37:04

我正在创建一个在线考试网站,我想为 30 个问题设置 30 分钟的计时器......谁能告诉我如何在 asp.net 中使用计时器控制或任何其他简单的方法?

如何在 asp.net 中使用计时器控制

<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
    </asp:Timer> // For one minute
<asp:UpdatePanel ID="UpdatePanel1"
    runat="server">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server"></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick">
        </asp:AsyncPostBackTrigger>
    </Triggers>
</asp:UpdatePanel>
protected void Timer1_Tick(object sender, EventArgs e)
{
    // Label1.Text = DateTime.Now.Second.ToString();
}

一种可能的方法是:

  • 创建一个更新面板,您可以在其中插入每个问题和可能的答案
  • 在 UpdatePanel 中,您可以插入表示问题的用户控件(例如,此用户控件将包含带有问题的标签以及一些带有关联答案标签的单选按钮或复选框)
  • 在 UpdatePanel 中,您可以使用计时器控件,如 Msdn 上的此示例所示 http://msdn.microsoft.com/en-us/library/bb398865.aspx <asp:Timer id="Timer1" runat="server" Interval="120000" OnTick="Timer1_Tick"> </asp:Timer>
  • 在每个时间间隔到期后,在 Timer 控件的 OnTick 事件中定义的函数将在服务器端触发;在那里,您将向 UserControl 加载下一个问题的值,并检查测试是否已完成或总时间是否已过去(例如,通过对变量中的总运行时间求和)

如果需要,您还可以在页面中显示倒计时并使用 JavaScript 对其进行更新。

...或者你可以使用JQuery。设置计时器 (http://code.google.com/p/jquery-timer/),然后在结束时触发超时操作。可以利用Ajax来尝试答案等 - 但这会使其他所有内容都保留在前端。

在更新面板中添加计时器控件是一种可以避免页面闪烁或总页面刷新的方法,用户可以获得流畅的体验。但是计时器控制效率低下,因为重复的请求被发送到服务器,这可能会导致过载和不必要的资源浪费。AJAX将是一个更好的选择,或者任何客户端JavaScript都可以更好。轮询是另一种有效的方法。