Javascript?是在长时间运行操作完成之前,保存ASP.NET页面的最佳方式是什么?
Metatag刷新?
的Response.Redirect(自己)
Server.Transfer的(自我)
的Ajax更新面板?
Javascript?是在长时间运行操作完成之前,保存ASP.NET页面的最佳方式是什么?
Metatag刷新?
的Response.Redirect(自己)
Server.Transfer的(自我)
的Ajax更新面板?
让我们看看选项:
的Javascript?
工作正常,只要用户没有禁用它。
Metatag刷新?
支持Javascript方法的不推荐方法。但是,如果用户禁用Javascript,则可以将其用作备份。
的Response.Redirect(自己)
那是不行的,因为浏览器不会显示anyhing对用户有用的重新导向。此外,浏览器将在一定数量的重定向后停止请求,以保护用户免受无限重定向。
Server.Transfer的(自我)
也不管用,因为在服务器上的代码将不发送任何内容到浏览器只是循环。效果与在代码中只有一个循环相同。
Ajax更新面板?
工作正常,只要用户没有禁用Javascript。它与第一个选项基本相同,只有Javascript自己执行请求,而不是让浏览器执行请求。
查看关于Asynchronous Pages的文章。这也是CodeProject的一个例子,它包括异步页面和META-REFRESH。
我建议使用Ajax并显示UpdateProgress,以便用户知道它仍在搅动。
您可以在Beer House Starter Kit- http://www.asp.net/Downloads/starter-kits/the-beer-house/中找到这种功能的示例实现。
SendingNewsLetter.aspx和SendNewsLetter.aspx页面将对您有用。这可能是为了满足您的需要,但它甚至可以显示长时间运行的进度。
如果你可以报告任何形式的进度给用户,我倾向于用asxh和forever frame的变化运行。加一点jQuery UI Dialog和jQuery UI Progress Bar和你有持有网友的关注,而你做服务器上的繁重闪亮的方式。
我给一些示例代码在874204演示该技术。
如果你不能给用户给予的进步,我倾向于仍然使用UI对话框,并弹出一个“请稍候,处理...”消息与Web两点哦兼容spinny GIF。
阅读您的答案 - 这是很好的东西。我很想尝试一下。 – 2009-05-24 15:56:25
ASP.Net中的Asynch页面将在另一个线程上执行,但在超时问题上不会更好(负载平衡超时ASP.Net脚本超时) – 2009-05-23 17:35:57