asp.net(VB)的倒计时计时器,该计时器通过回发保持不变
asp.net (VB) countdown timer that is persistent through postbacks
我的asp.net vb页面上有一个按钮和标签,当按下按钮时,我需要一个倒计时计时器,从10分钟开始,每秒钟更新一次,09:59、09:58、09:57等……尽管有任何回发或临时重定向到其他页面,我仍需要计时器继续倒计时。
到目前为止,我已经尝试过使用Asp.Net定时器(带有异步触发器/更新面板),但对于倒计时的秒数,这需要进行1秒的回发,并且当有数百个用户访问系统时,这将非常耗费资源。它目前将确切的倒计时时间写入会话变量,然后在重新加载页面时检索该变量——这是一个非常丑陋的方法,但这是我让它工作的唯一方法。
更新-我找到了问题的解决方案:
使用这个伟大的Javascript倒计时脚本http://scripts.hashemian.com/js/countdown.js
ASPX页面:
<asp:Literal runat="server" ID="jsTimeMarker"/>
<script type="text/javascript" src="http://scripts.hashemian.com/js/countdown.jss"></script>
<asp:Button runat="server" Text="10 Mins" ID="btn10Mins"/>
代码隐藏页:
Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
' Set Countdown Timer based on if Cookie is set
If Not Request.Cookies("CountDownTimer") Is Nothing Then
TimeMarkerRender(Request.Cookies("CountDownTimer")("Data"))
End If
End If
End Sub
Sub TimeMarkerRender(TargetDateTime As String)
Dim sb As StringBuilder = New StringBuilder()
sb.Append("<script type=""text/javascript"">")
'sb.Append("TargetDate = ""08/28/2013 18:11:29"";")
sb.Append("TargetDate = " & "'" & TargetDateTime & "'" & ";")
sb.Append("CountActive = true;")
sb.Append("CountStepper = -1;")
sb.Append("LeadingZero = true;")
sb.Append("DisplayFormat = ""%%M%%:%%S%%"";")
sb.Append("FinishMessage = ""Finished"";")
sb.Append("</script> ")
jsTimeMarker.Text = sb.ToString()
End Sub
Protected Sub btn10Mins_Click(sender As Object, e As EventArgs) Handles btn10Mins.Click
Response.Cookies("CountDownTimer")("Data") = Now.AddMinutes(10).ToString("MM/dd/yyyy HH:mm:ss")
Response.Redirect(Request.RawUrl)
End Sub
我的意思是,正如您所发现的,基本问题是,通过任何类型的回发来保持它都会很困难,而且不那么准确。你可以为你的内容页面使用iframe并在外部页面上用javascript运行计数器吗?或者你可以在用户工作时启动一个新窗口并运行计数器?
下面是一个简单的javascript倒计时计时器:https://mindgrader.com/tutorials/1-how-to-create-a-simple-javascript-countdown-timer
更新-我已经找到了问题的解决方案:
使用这个伟大的Javascript倒计时脚本http://scripts.hashemian.com/js/countdown.js
ASPX页面:
<asp:Literal runat="server" ID="jsTimeMarker"/>
<script type="text/javascript" src="http://scripts.hashemian.com/js/countdown.jss"></script>
<asp:Button runat="server" Text="10 Mins" ID="btn10Mins"/>
代码隐藏页:
Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
' Set Countdown Timer based on if Cookie is set
If Not Request.Cookies("CountDownTimer") Is Nothing Then
TimeMarkerRender(Request.Cookies("CountDownTimer")("Data"))
End If
End If
End Sub
Sub TimeMarkerRender(TargetDateTime As String)
Dim sb As StringBuilder = New StringBuilder()
sb.Append("<script type=""text/javascript"">")
'sb.Append("TargetDate = ""08/28/2013 18:11:29"";")
sb.Append("TargetDate = " & "'" & TargetDateTime & "'" & ";")
sb.Append("CountActive = true;")
sb.Append("CountStepper = -1;")
sb.Append("LeadingZero = true;")
sb.Append("DisplayFormat = ""%%M%%:%%S%%"";")
sb.Append("FinishMessage = ""Finished"";")
sb.Append("</script> ")
jsTimeMarker.Text = sb.ToString()
End Sub
Protected Sub btn10Mins_Click(sender As Object, e As EventArgs) Handles btn10Mins.Click
Response.Cookies("CountDownTimer")("Data") = Now.AddMinutes(10).ToString("MM/dd/yyyy HH:mm:ss")
Response.Redirect(Request.RawUrl)
End Sub
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 计时器循环从不运行
- Progressbar计时器,仅在页面刷新时重新加载
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 试图创建一个24小时计时器来重置自己
- 在JS中设置计时器1秒
- asp.net(VB)的倒计时计时器,该计时器通过回发保持不变