代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Lott

如何在生成文件后关闭启动消息?

  •  2
  • Jeffrey Lott  · 技术社区  · 16 年前

    1. 关闭消息。
    2. 禁用计时器。

    我的问题来自这样一个事实,即一旦我将文件写入响应,我的回发就不会完成,因此 视图状态 没有更新,因此消息和计时器仍然存在。

    有什么想法吗?

    3 回复  |  直到 10 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    我认为您需要将其分解为几个阶段,而不是在一个页面请求中完成所有处理。如果我在设计这个,我会想做这样的事情。。

    1. 用户通过单击站点上的某个链接启动文件创建。这会将一些信息写入DB表,或者启动生成文件的进程。
    2. 用户将看到一个“请等待”页面,该页面可以每N秒更新一次。

    假设“please wait”(请等待)页面使用基于经过身份验证的用户的某种标识,那么这样做的好处是允许用户收集他们的文件,而不管他们是否感到无聊和/或意外关闭浏览器。

    事实上,为什么不看看这些涵盖类似背景的SO帖子。。。

    Handling Long Running Reports Long-running code within asp.net process BackgroundWorker thread in ASP.NET

        2
  •  -1
  •   Paul U    16 年前

    Dialog.show();    
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
                        function(sender, args) {                            
                            MyDialog.hide();
                        }); 
    
        3
  •  -1
  •   Ted    16 年前

    KISS方法重定向到一个加载页面(带有加载消息等),该页面反过来调用慢速加载资源。页面不断地显示加载消息,直到资源准备就绪。唯一的缺点是,如果您的资源确实需要5分钟才能生成,那么请求将超时。如果是这样的话,@martinpeck已经发布了一个更好的解决方案。

    推荐文章