的Javascript?
Metatag刷新?
Response.Redirect(to self)
Server.Transfer(to self)
Ajax更新面板?
答案 0 :(得分:3)
让我们看一下选项:
的Javascript?
只要用户没有禁用它,它就能正常工作。
Metatag刷新?
赞成使用Javascript方法的弃用方法。但是,如果用户已禁用Javascript,您可以将其用作备份。
Response.Redirect(to self)
这不起作用,因为浏览器在重定向时不会显示对用户有用的任何内容。此外,浏览器将在一定数量的重定向后停止请求,以保护用户免受无限重定向。
Server.Transfer(to self)
也不起作用,因为服务器上的代码只是循环而不向浏览器发送任何内容。效果与代码中的循环相同。
Ajax更新面板?
工作正常,只要用户没有禁用Javascript。它与第一个选项基本相同,只有Javascript执行请求本身而不是让浏览器执行请求。
答案 1 :(得分:3)
如果您可以向用户报告任何类型的进度,我倾向于使用asxh和forever frame的变体运行。添加一点jQuery UI Dialog和jQuery UI Progress Bar,您就可以在服务器上进行繁重的工作时保持用户注意力。
我在874204提供了一些示例代码来演示该技术。
如果你无法向用户提供进展,我倾向于仍然使用UI对话框并弹出一个“请等待,处理...”消息,带有一个网络两点哦兼容的spinny gif。
答案 2 :(得分:2)
查看Asynchronous Pages上的这篇文章。这里还有一个来自CodeProject的例子,其中包括异步页面和META-REFRESH。
答案 3 :(得分:1)
您可以在Beer House入门套件http://www.asp.net/Downloads/starter-kits/the-beer-house/中找到此类功能的示例实现。
SendingNewsLetter.aspx和SendNewsLetter.aspx这两个页面对您有用。这可能对你的需求来说太过分了 - 它甚至显示了长时间运行的进展。
答案 4 :(得分:1)
答案 5 :(得分:0)
我建议使用Ajax并显示UpdateProgress,以便用户知道它仍在流失。