我的页面上有一个按钮,可将当前页面位置设置为在我的服务器上生成 PDF 的页面。因为生成和发送文件需要几秒钟,我想通知用户他们的点击已收到并正在处理,所以我在下载过程中添加了一个微调器。
$("#download-pdf-button").click(function() {
// some code to display a spinner
window.location.href = "/path/to/downloadGeneratingPage";
// some code to hide the spinner
});
下载工作正常,但此代码执行方式,微调器立即隐藏。我想找到一种方法让它显示微调器,一旦服务器发回它的请求,微调器就会再次隐藏。
我尝试了其他一些选项,例如使用$.get()
数据并将数据发送到隐藏的 iframe,但这不允许我像使用服务器的 HTTP 响应那样建议一个文件名(但它确实允许我隐藏微调器我希望它被隐藏)。名称不是一个大问题(但是很高兴),但我至少需要添加扩展名,以便用户无需重命名即可打开它。
基本上我想要的是:
- 发送请求时显示微调器
- 在浏览器收到文件后下载文件(如果需要,我可以更改服务器端代码,例如发送不同的 HTTP 标头)
- 收到文件时隐藏微调器
- 允许我添加文件扩展名