$templateCache 是如何工作的?
How $templateCache works?
我对 $templateCache 资源有点困惑;
html/template会存储在服务器端吗?
或将存储在浏览器内存中?如果是这样,内存限制是多少?
模板将在首次使用或通过 put 添加时缓存在客户端上。本身没有内存限制,但是过多或过多的缓存模板会影响性能,因为它们需要由客户端作为 $documentRoot(即 ng-app)的一部分下载。
$templateCache 的工作原理
当您有 templateUrl
时,在对该模板发出网络请求之前,Angular 将首先查看 $templateCache
以查看它是否存在。
您第一次请求某些 templateUrl
时会发出网络请求,但结果存储在 $templateCache
中,因此下次您转到 url 时,它会从$templateCache
.
在开发中,第一个请求不被缓存这一事实很好,因为请求是针对本地文件的,而不是针对外部文件的网络请求(具有高延迟和耗时)。
在生产环境中,有两种方法可以将文件最初放置在 $templateCache
。
- 使用 ngTemplate.
- 在
run
块中手动添加到 $templateCache
。 Tutorial.
记忆问题
$templateCache 肯定不会从服务器访问模板;它存储在客户端上。至于在客户端的什么地方,我设置了一个 SSCCE ,它似乎将它存储为一个 JavaScript 字符串。它似乎没有将其存储在 localStorage
、sessionStorage
中或作为 cookie。
我对 $templateCache 资源有点困惑;
html/template会存储在服务器端吗?
或将存储在浏览器内存中?如果是这样,内存限制是多少?
模板将在首次使用或通过 put 添加时缓存在客户端上。本身没有内存限制,但是过多或过多的缓存模板会影响性能,因为它们需要由客户端作为 $documentRoot(即 ng-app)的一部分下载。
$templateCache 的工作原理
当您有 templateUrl
时,在对该模板发出网络请求之前,Angular 将首先查看 $templateCache
以查看它是否存在。
您第一次请求某些 templateUrl
时会发出网络请求,但结果存储在 $templateCache
中,因此下次您转到 url 时,它会从$templateCache
.
在开发中,第一个请求不被缓存这一事实很好,因为请求是针对本地文件的,而不是针对外部文件的网络请求(具有高延迟和耗时)。
在生产环境中,有两种方法可以将文件最初放置在 $templateCache
。
- 使用 ngTemplate.
- 在
run
块中手动添加到$templateCache
。 Tutorial.
记忆问题
$templateCache 肯定不会从服务器访问模板;它存储在客户端上。至于在客户端的什么地方,我设置了一个 SSCCE ,它似乎将它存储为一个 JavaScript 字符串。它似乎没有将其存储在 localStorage
、sessionStorage
中或作为 cookie。