加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何防止asp:Timer在生成响应之前发送tick?

发布时间:2020-12-16 03:22:09 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET网站.我希望用户做出决定并在一定时间内单击给定按钮之一并将其重定向到另一个页面.如果他没有做出决定,他仍然会被重新定向在我头脑中的“无选择”标记. 我使用asp:Timer在时间到了之后启动回发.我正在通过在Page_Load处理程序中调用Respons
我有一个ASP.NET网站.我希望用户做出决定并在一定时间内单击给定按钮之一并将其重定向到另一个页面.如果他没有做出决定,他仍然会被重新定向在我头脑中的“无选择”标记.

我使用asp:Timer在时间到了之后启动回发.我正在通过在Page_Load处理程序中调用Response.Redirect(‘page.html’,false)来进行重定向.在这种情况下,我可以在实际重定向之前处理button_click或timer_tick事件.处理完其中一个事件后,将呈现页面并完成重定向.

但我有两个问题.首先,如果输入处理的时间足够长,则会触发第二个计时器的滴答,启动新的回发,并取消当前的电流!其次,如果用户在时间到来之前单击按钮,则在重定向完成之前会发生计时器滴答,并且它会再次覆盖用户点击的处理!

我该如何解决这些问题?如何在触发第一个滴答或用户点击按钮后在客户端禁用定时器?或者解决我的任务的更好方法是什么?谢谢.

解决方法

作为变体,您可以使用客户端setTimeout函数而不是Timer控件,并在按钮单击时清除超时:

<script type="text/javascript">
      var redirectTimeout = setTimeout(function () {
           location.href = '<%= ResolveClientUrl("~/page.html") %>';
      },5000);
 </script>

 <asp:Button runat="server" ID="SubmitButton" Text="Submit" 
      OnClientClick="clearTimeout(redirectTimeout);" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读