$ http.get和$ templateCache

时间:2017-05-04 14:30:26

标签: angularjs caching

有人可以向我解释以下代码:

$http.get('./template.html', {
    cache: $templateCache
}).then (function(response){
  console.log(response.data);
});

我理解response.data将等于template.html的整个内容,但是对象呢

{cache: $templateCache}

它做了什么?

2 个答案:

答案 0 :(得分:2)

以下是$http服务文档中的一行:

  

缓存 - ViewBag - 使用$cacheFactory创建的布尔值或对象,用于启用或禁用HTTP响应的缓存。有关详细信息,请参阅$http Caching

因此,通过指定{boolean|Object},您可以告诉Angular在内部缓存数据映射中缓存HTTP响应,可以作为$templateCache服务访问。这意味着如果您使用{cache: $templateCache}再次请求./template.html或在$http.get指令中使用模板作为源,则不会重新加载,而是从缓存中检索。

答案 1 :(得分:2)

来自$templateCache docs

  

第一次使用模板时,它会加载到模板缓存中   用于快速检索。您可以将模板直接加载到缓存中   script代码,或直接使用$templateCache服务。

这意味着响应将存储在缓存中。就perf而言,有趣的是刷新页面时不会再次加载模板。