Angularjs 1 - 一个请求,多个响应

时间:2017-05-22 12:42:23

标签: angularjs

我有一个包含多个小部件的页面,每个小部件都从后端的不同查询中接收数据。对每个请求执行请求将消耗浏览器对并行连接数量的限制,并将序列化其中一些连接。另一方面,执行一个将返回一个响应的请求意味着它将与最慢的查询一样慢(我没有关于哪个查询将是最慢的先验知识)。

所以我想创建一个请求,以便后端并行运行查询并在准备好时写入每个结果,并在前端处理每个结果时对其进行处理。在HTTP级别,我相信它可能只是一个具有多个json的主体,或者可能是多部分响应。

是否有一个angularjs扩展来处理事物的前端?最好的东西适用于Java后端可以做的任何事情(没有开始调查我的选项)

2 个答案:

答案 0 :(得分:1)

我有另一个建议来解决你的问题,但我不确定你是否能够实施这样的事情,因为你不清楚你能做什么或不能做什么。

您可以实现WebSockets,服务器将能够通知前端有关正在获取的数据,或者它可以立即通过WebSockets发送数据。

在第一个示例中,您将向服务器发送请求以获取仪表板的所有数据。一旦有一个数据可用,你可以请求该特定部分,并且假设数据是在几秒前提取的,它可以缓存在服务器上,响应速度很快。

第二种方法似乎更合理。您将向服务器发出HTTP / WebSocket请求,并等待数据通过WebSocket到达。

我相信这将是实现您所要求的最有效的方式。

答案 1 :(得分:0)

https://github.com/dfltr/jQuery-MXHR

此插件允许通过回调来解析包含多个部分(多部分)的响应来解析每个部分。这可以在我们所有的前端中使用,以支持一个请求中的多个数据(小部件)的响应。服务器端将接收一个请求并使用servlet 3异步支持(或其他语言中存在的任何内容)来“停放”它,发送多个查询,在每个查询返回时(并使用正确的多部分边界)将每个响应写入请求。

另一个例子可以在这里找到:https://github.com/anentropic/stream。 虽然这两者可能与angularjs不兼容,但代码在那里移植似乎并不复杂。