|
|
1
2
您不能在同一响应中发回文件和新页面。 我不确定该解决方案如何满足您的特定需求,但请记住,您可以使用Javascript启用或禁用按钮权限 之前 发送文件创建请求 到 服务器(这样,当用户开始下载电子表格时,按钮已经处于您想要的状态)。 |
|
|
2
2
你不能。你可以通过点击按钮打开一个弹出窗口来伪造这种行为,让弹出窗口提供文件并从javascript发回页面。但通过这种方式,您实际上创建了2个请求和2个响应。 更新:如果你想在他们开始下载时禁用按钮,并在下载开始后立即启用它,你真的无法做到这一点,但你可以使用一些技巧让它看起来像那样。当他们点击下载按钮时,使用一些javascript来禁用该按钮并创建启动文件流的弹出窗口。当文件流函数(WriteToResponse)返回时,在用户会话中设置一些值。同时,让原始页面使用AJAX轮询服务器,查看是否设置了会话值。如果已设置,请重新启用按钮并再次将值设置为空或false(因此这是第二次)。但这似乎有很多把戏。 但我认为在这种情况下,治疗比问题更糟糕。我假设你想要这样做,因为生成文件需要一段时间,而且你不希望用户在准备文件时不耐烦地按下按钮来重置流程。为了实现这一点,我只需在按钮按下页面上显示一条弹出消息,内容类似于“您的下载正在准备中。这可能需要一分钟。感谢您的耐心等待。(单击可忽略此消息)” |