gpt4 book ai didi

asp.net - 如何防止asp :Timer from sending tick before response is generated?

转载 作者:行者123 更新时间:2023-12-04 21:20:39 24 4
gpt4 key购买 nike

我有一个 ASP.NET 网站。我希望用户做出决定并在一定时间内单击给定按钮之一并将他重定向到另一个页面。如果他没有做出决定,他仍然会在我的脑海中被重定向到“没有选择”的标记。

我用 asp:Timer在时间结束后启动回发。我正在通过调用 Response.Redirect('page.html', false) 进行重定向在 Page_Load处理程序。在这种情况下,我可以处理 button_clicktimer_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);" />

关于asp.net - 如何防止asp :Timer from sending tick before response is generated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12567226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com