ASP.NET,在回发时显示加载消息
Posted
技术标签:
【中文标题】ASP.NET,在回发时显示加载消息【英文标题】:ASP.NET, Showing Loading message while Postback 【发布时间】:2010-11-04 17:48:22 【问题描述】:我有一个 ASP.NET 页面,其中有一个 asp.net 按钮控件。当用户点击按钮时,页面会做一些计算然后关闭自己,但是当我在回发期间点击按钮时,页面显示一个空白屏幕。我想显示加载消息而不是这个。我使用 javascript 显示最初隐藏的 div,并在用户单击按钮时显示,但是当回发发生时,屏幕变为空白。知道如何在这种情况下显示加载消息吗?
提前致谢。
【问题讨论】:
【参考方案1】:你真的需要避免使用 ASP.NET ajax 或 JQuery 吗?
如果是这样:将繁重的处理移至不可见的 IFRAME。将您的表单操作到不可见的 IFRAME,或使用 javascript 设置 IFRAME 的位置。
您的“加载”javascript 将正常显示。当 IFRAME 中的表单完成时,它只需要输出一些 javascript 来告诉“父”去定位或刷新。
【讨论】:
我的项目中有 jQuery。我该如何使用 jQuery? 收集您需要处理的所有数据,并将其 POST (docs.jquery.com/Ajax/jQuery.post) 到执行处理的 ASPX 页面。 jQuery.post 有一个回调来告诉你页面何时完成。 ajax 对象有事件 ajaxStart / ajaxComplete。您可以使用这些来打开/关闭加载消息。【参考方案2】:如果您使用 Ajax 异步回发到表单,您可以使用 UpdateProgress 控件。这是一篇文章的链接,该链接解释了如何实现该功能:
How to make a Gmail-like loading indicator with ASP.NET Ajax
【讨论】:
您是否有不想使用 Ajax 的原因?实现起来非常简单,尤其是因为您已经在使用 asp.net。【参考方案3】:基本上,您不能只使用回发。浏览器在等待服务器响应时将屏幕绘制为白色。您设置为在用户单击按钮时显示的消息是正确的方法(干得好)。
但浏览器将屏幕拉白,想着“天哪,我要得到响应了!”然后等了比你认为合适的时间更长。
您唯一可以尝试的是,在响应中,首先将某种加载消息流式传输到浏览器,浏览器可以在加载其余部分时显示该消息(例如 gmail 加载屏幕)。但就个人而言,我认为您可以将时间花在其他一些开发上。
不过,您可以尝试使用 AJAX 的其他技术。
【讨论】:
以上是关于ASP.NET,在回发时显示加载消息的主要内容,如果未能解决你的问题,请参考以下文章