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,在回发时显示加载消息的主要内容,如果未能解决你的问题,请参考以下文章

asp .net背景图像在回发时闪烁

ASP.NET 在更新面板更新时显示“正在加载...”消息

动态创建的 asp.net 控件在回发后消失

asp.net bootstrap 在回发事件后保持当前活动选项卡

在回发期间启用/禁用 Asp.net Image 按钮

如何避免在回发时从 asp.net 重复输入?