如何将文件写入响应流并显示/隐藏“工作”模式窗口?

Posted

技术标签:

【中文标题】如何将文件写入响应流并显示/隐藏“工作”模式窗口?【英文标题】:How do I write a file to the response stream and have a 'Working' modal window show/hide? 【发布时间】:2011-02-15 19:09:10 【问题描述】:

我需要将文件导出给用户。生成文件需要 1-2 分钟,所以我想让页面进入一种模式模式,在页面上停留并显示“工作”微调器。问题是我无法在“保存文件”对话框关闭后使模态内容消失。

对话结束后如何移除中途停留?

【问题讨论】:

【参考方案1】:

很久以前我问过几乎相同的问题 (here),著名的 T. J. Crowder 提出了一个很棒的解决方案。客户端(页面)在请求文件时会提交一个额外的参数。额外的参数应该是一些随机字符串。然后,您启动模态“等待...”对话框。

现在,从服务器上,当您准备响应时,您将 cookie 设置为该额外参数的值。反过来,客户端应该启动一个间隔计时器,它每隔 100 毫秒左右查看一次document.cookie,检查该随机值。只要 cookie 包含随机值,那么您就知道 HTTP 响应已经从服务器到达!此时,您可以隐藏模态对话框或其他任何内容。

【讨论】:

酷!我也用它。请注意,当我写“随机字符串”时,我的意思是客户端应该使用时间戳或类似的东西来编造一些新的随机字符串。这样您就可以支持从同一页面进行多次单独下载,因此每个 HTTP 请求都有自己独特的无意义字符串以在 cookie 中查找。

以上是关于如何将文件写入响应流并显示/隐藏“工作”模式窗口?的主要内容,如果未能解决你的问题,请参考以下文章

在下拉菜单中响应地隐藏和显示子元素

打开将“溢出:隐藏”分配给正文的模式或窗口时,页面滚动到最顶部

如何从隐藏的窗口应用程序中显示对话框?

在 ATL 无模式对话框上调用 ShowWindow(SW_SHOW) 不会将窗口置于前面

[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口

显示警报后隐藏模式弹出窗口