在Javascript提交时禁用页面(在文件下载期间)

时间:2016-09-02 09:17:49

标签: javascript jquery asp.net-mvc-4

我看过并且没有看到任何方法来禁用该页面,例如页面上的叠加层,以防止在我提交JavaScript动作时执行任何操作:

 function AgendaMinutes() {
    var id = '@Model.ID';
    var form = $('<form method="POST" action="AgendaMinutes">');
    form.append($('<input type="hidden" name="dprid" value="' + id + '">'));
    $(body).append(form);
    form.submit().remove();
    return false;
}

这就像生成并向客户端发送PDF一样,但允许用户多次单击该按钮。我可以禁用按钮,但是如何知道PDF何时返回以便我可以释放它?

1 个答案:

答案 0 :(得分:1)

  

但我怎么知道什么时候返回PDF [以便我可以重新启用页面]

下载文件的最简单选项&#34;知道&#34;完成后,通过target="_blank"将文件发送到新窗口/标签页。

通过这种方式,用户可以获得进度指示器(通过浏览器),并且您的页面不需要知道它何时完成(正如另一个标签处理它),因此可以重新启用立即

如果您的页面需要等待某些原因,例如必须在继续之前生成文档,那么将需要替代解决方案:在这种情况下,我生成并持续文件在服务器上,然后提供客户端的下载链接。