我的页面上有一个按钮,用于将当前页面位置设置为在我的服务器上生成PDF的页面。因为生成和发送文件需要几秒钟,我想通知用户他们的点击已经收到并正在处理,所以我在下载过程中添加了一个微调器。
$("#download-pdf-button").click(function() {
// some code to display a spinner
window.location.href = "/path/to/downloadGeneratingPage";
// some code to hide the spinner
});
下载工作正常,但是这个代码执行的方式,微调器立即被隐藏。我想找到一种让spinner显示的方法,一旦服务器发回了它的请求,再次隐藏了微调器。
我尝试过其他一些选项,例如使用$.get()
并将数据发送到隐藏的iframe,但这不允许我使用服务器的HTTP响应建议文件名(但是它确实允许我隐藏微调器,我希望它被隐藏)。这个名称不是一个大问题(不过很好),但我需要至少添加扩展名,以便用户可以在不重命名的情况下打开它。
基本上我想要的是:
答案 0 :(得分:1)
在window.location.href
中设置值将卸载当前页面并加载您定义的页面。该语句后的代码将不会被执行。
您可能想要的是an ajax request。
//Code to show the spinner
$.ajax( "/path/to/downloadGeneratingPage" ).done( function( data ) {
//Code to hide the spinner and do something with the data the server sent back
} );