1

是否可以让一个页面发送 ajax 请求并让另一个页面处理响应?

用例是一个长时间运行的任务。用户向服务器提交 ajax 帖子,服务器处理该作业所需的时间,可能是几分钟,然后返回响应,但用户可能已经浏览到另一个页面。

我希望能够拥有相同的 JavaScript 函数来处理所有页面上的响应,以便处理来自原始页面的 ajax 响应。这可能吗 ?如果没有任何建议的解决方案?

我正在使用弹簧框架。

谢谢。

4

3 回答 3

3

您可以使用 Spring MVC 的异步功能:( http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/new-in-3.2.html )

一个例子(http://blog.inflinx.com/2012/09/09/spring-async-and-future-report-generation-example/

于 2013-10-28T23:58:31.453 回答
1

我会研究一个可以将更改从服务器推送到客户端的推送框架。如果您使用的是 asp.net,需要考虑的一个是 SignalR。

http://signalr.net/

您还可以使用其他long polling技术来实现此目的。

此处提供更多信息 什么是长轮询、Websocket、服务器发送事件 (SSE) 和 Comet?

http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

于 2013-10-28T23:51:51.643 回答
0

最简单的方法是提交 ajax 请求,然后发送后续的 ajax 请求以每隔一段时间(比如每 2 秒)轮询一次。

一个(很多)更好的方法是使用 websockets - 最值得注意的是,如果您使用的是 nodejs,请查看http://socket.io。使用套接字,您拥有持久连接,您只需为每个用户分配一个 ID。这样你就可以在你的服务器上排队你的工作,当它们准备好时,你可以查找相应的套接字并将答案发回。此外,如果您看到用户已完全断开连接,您还可以取消作业,这样您就不会浪费服务器资源

于 2013-10-28T23:59:13.620 回答