如何在不同页面中保留相同的HTTP请求

时间:2013-11-21 14:31:48

标签: javascript http jquery

我有一个Web应用程序可以在我的应用程序的不同页面中下载一些报告,我从外部API检索报告的数据,我正在使用AJAX调用来获取这些数据。正如预期的那样,如果用户在生成报告时更改页面,则用户将无法下载该页面,HTTP请求将被取消。

我心中有一些解决这个问题的方法:

  • 我可以打开一个弹出窗口来请求报告并保持打开状态;
  • 我可以将整个应用程序留在IFRAME中,并从页面中请求报告;
  • 或者我可以改变下载队列报告的方式(只是一个想法,现在没关系)......

有没有其他方法可以做到这一点? 即使用户更改页面,也可以保留HTTP请求吗?

我的方案是在前端(javascript)我无法访问任何后端。但如果前端没有办法,我想听听你的意见。

2 个答案:

答案 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函数),以及添加有用的钩子用于连接管理,例如连接/断开事件,分组连接,授权。

http://signalr.net/

这是我的团队发现的解决方案。它工作正常。我们的案例仅适用于ASP.NET。但正如自己的文本所说,“你可能听说过WebSockets,一种新的HTML5 API,支持双向......”。所以,现在我们可以做到。