2

我对 $templateCache 资源有点困惑;

  • html/模板将存储在服务器端?

  • 还是会存储在浏览器内存中?如果是这样,内存限制是多少?

4

2 回答 2

5

$templateCache 是如何工作的

如果你有templateUrl,在对该模板发出网络请求之前,Angular 会$templateCache先查看它是否存在。

第一次请求某个templateUrl网络请求时,会发出一个网络请求,但结果会存储在其中,$templateCache因此下次访问该 url 时,它会从$templateCache.

在开发中,第一个请求没有被缓存这一事实很好,因为请求是针对本地文件的,而不是针对外部文件的网络请求(具有高延迟且耗时)。

在生产中,有两种方法可以设置它,以便文件最初放置在$templateCache.

  1. 使用ngTemplate
  2. 在块中$templateCache手动添加。教程run

记忆问题

$templateCache 绝对不会从服务器访问模板;它将它存储在客户端上。至于在客户端的哪个位置,我设置了一个SSCCE,它似乎将其存储为 JavaScript 字符串。它似乎没有将其存储在localStoragesessionStorage或 cookie 中。

于 2015-12-10T02:00:49.433 回答
1

模板将在首次使用后或通过 put 添加时缓存在客户端上。本身没有内存限制,但是缓存模板过大或过多会影响性能,因为客户端需要将它们作为 $documentRoot(即 ng-app)的一部分下载。

于 2015-12-10T01:20:15.380 回答