我在一个页面中有几个组件。
每个人都从服务器获取相同的数据。
因此,当页面加载时,这些组件会多次发送相同的请求。
有什么方法可以阻止这种情况吗?就像缓存第一个请求的承诺并将其返回到下一个请求(在承诺解决之前)?
答案 0 :(得分:1)
为了确保请求只发送一次,您可以跟踪您创建的第一个 HttpPromise
,并在后续调用该函数时返回相同承诺。
This SO链接可能是您正在寻找的内容。
答案 1 :(得分:0)
调用$ http服务时,您还可以提供缓存对象。如果您这样做,任何其他请求将使用缓存的值。如果使用相同的缓存,则在解析第一个请求之前发出的其他请求将不会调用服务器,而是等待响应。
$http.get(url, {cache:cacheObj})
cacheObj
来自$ cacheFactory