重定向前的时间延迟
本文关键字:时间延迟 重定向 | 更新日期: 2023-09-27 18:30:56
我为我的 Web 应用程序创建了一个注册页面。应用程序要求用户成功注册新帐户后,页面将显示消息"注册成功",然后等待 5 秒后再切换到登录页面。我用了Thread.Sleep(5000)
.它等待 5 秒钟,但不显示消息。谁能帮我?
void AccountServiceRegisterCompleted(object sender, RegisterCompletedEventArgs e)
{
if (e.Result)
{
lblMessage.Text = "Register successfully";
Thread.Sleep(5000);
this.SwitchPage(new Login());
}
else
{
...
}
}
Thread.Sleep(5000)
只会暂停您的线程 5 秒 - 在此期间不会执行此线程上的代码。所以没有消息或其他任何东西。
如果是 ASP.NET 应用程序,则客户端不知道服务器上发生了什么,并等待服务器的响应 5 秒。您必须手动实现此逻辑。例如,要么使用 JavaScript:
setTimeout(function(){location.href = 'test.aspx';}, 5000);
或通过添加 HTTP 标头:
Response.AddHeader("REFRESH","5;URL=test.aspx");
或meta
标记:
<meta http-equiv="refresh" content="5; url=test.aspx" />
查看更多信息。
如果它是一个桌面应用程序,你可以使用计时器之类的东西。并且永远不要让主线程(UI Thread)与Thread.Sleep之类的东西挂起。
只有元标记就足以重定向到另一个页面
动态广告元标记
Response.AddHeader("REFRESH", "5;URL=~/account/login");
此代码会将元标记广告到当前页面,您的页面将在指定时间内重定向到另一个页面,如上所示。