我有一个Web应用程序可以在我的应用程序的不同页面中下载一些报告,我从外部API检索报告的数据,我正在使用AJAX调用来获取这些数据。正如预期的那样,如果用户在生成报告时更改页面,则用户将无法下载该页面,HTTP请求将被取消。
我心中有一些解决这个问题的方法:
有没有其他方法可以做到这一点? 即使用户更改页面,也可以保留HTTP请求吗?
我的方案是在前端(javascript)我无法访问任何后端。但如果前端没有办法,我想听听你的意见。
答案 0 :(得分:0)
使用onbeforeunload
警告用户如果他离开页面导航,下载将被取消
答案 1 :(得分:0)
ASP.NET SignalR
ASP.NET SignalR是一个面向ASP.NET开发人员的新库,它使得向应用程序添加实时Web功能变得异常简单。什么是“实时网络”功能?它能够让您的服务器端代码实时地将内容推送到连接的客户端。
您可能听说过WebSockets,这是一种新的HTML5 API,支持浏览器和服务器之间的双向通信。 SignalR将在可用时使用WebSockets,如果不是,则优雅地回退到其他技术和技术,而您的应用程序代码保持不变。
SignalR还提供了一个非常简单的高级API,用于在ASP.NET应用程序中执行服务器到客户端RPC(在客户端的浏览器中从服务器端.NET代码调用JavaScript函数),以及添加有用的钩子用于连接管理,例如连接/断开事件,分组连接,授权。
这是我的团队发现的解决方案。它工作正常。我们的案例仅适用于ASP.NET。但正如自己的文本所说,“你可能听说过WebSockets,一种新的HTML5 API,支持双向......”。所以,现在我们可以做到。