使用Angular资源时,防止同时发送相同的请求

时间:2016-10-06 03:26:59

标签: angularjs angular-resource

我在一个页面中有几个组件。

每个人都从服务器获取相同的数据。

因此,当页面加载时,这些组件会多次发送相同的请求。

有什么方法可以阻止这种情况吗?就像缓存第一个请求的承诺并将其返回到下一个请求(在承诺解决之前)?

2 个答案:

答案 0 :(得分:1)

为了确保请求只发送一次,您可以跟踪您创建的第一个 HttpPromise,并在后续调用该函数时返回相同承诺。

This SO链接可能是您正在寻找的内容。

答案 1 :(得分:0)

调用$ http服务时,您还可以提供缓存对象。如果您这样做,任何其他请求将使用缓存的值。如果使用相同的缓存,则在解析第一个请求之前发出的其他请求将不会调用服务器,而是等待响应。

$http.get(url, {cache:cacheObj})

cacheObj来自$ cacheFactory