默认.aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server">2:00:00</asp:Label>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
默认.aspx.vb
Dim timer, timer_arr() As String
timer = Label1.Text
timer_arr = timer.Split(":")
Dim seconds = Integer.Parse(timer_arr(2))
Dim minutes = Integer.Parse(timer_arr(1))
Dim hours = Integer.Parse(timer_arr(0))
If seconds = 0 And minutes = 0 And hours = 0 Then
Timer1.Enabled = False
Else
seconds = seconds - 1
End If
If (seconds < 0) Then
seconds = 59
minutes = minutes - 1
End If
If minutes < 0 Then
minutes = 59
hours = hours - 1
End If
Label1.Text = hours & ":" & minutes & ":" & seconds
上面的代码显示了预期的结果,我的意思是,我需要倒数计时器,它将向客户端显示倒数计时器2:45:34
。但问题是秒的值减少了两倍。我的意思是2:45:34
在下一秒之后而不是显示2:45:33
,它显示2:45:32
等等。我很困惑,从我的角度来看,一切都很好。需要帮忙 !!
更新
我相信,客户端脚本,即 javascript 将是另一种选择,但我需要在线考试系统的计时器,这意味着每当客户端向服务器发送请求时,计时器应该继续计时。但是,如果我将使用 javascript,则计时器值将中断并显示意外值,即可能会再次初始化,以及其他原因。所以,我相信服务器端脚本将是最好的。如果有人有其他建议,那么我将不胜感激。!!