gpt4 book ai didi

javascript - AngularJS:什么是 $templateCache?

转载 作者:行者123 更新时间:2023-11-30 12:38:16 25 4
gpt4 key购买 nike

在分析大型 AngularJS 应用程序时,我开始跟踪 $templateCache。

https://docs.angularjs.org/api/ng/service/ $模板缓存

这个对象是什么?它存储部分是因为它们存储在磁盘上还是从路由中最终呈现的 HTML?

我已经在我的 Controller 中添加了一些这样的代码,以确保它不会持久化任何内容:

$scope.$on('$destroy', function cleanup() {
$templateCache.removeAll();
});

编辑:我正在研究这个的原因是一个(不是每个) Controller 正在加载一个很大的部分,里面有几个循环,根据用户输入,它可能是大约 100 个输入大字段 <select>语句和许多自定义指令。客户要求这样做,我想确保所有这些都在路由过程中得到处理。

为了澄清这个问题:$templateCache 只存储磁盘上出现的部分,没有存储路由或渲染信息?

最佳答案

默认情况下,在加载模板时,Angular 会在 $templateCache 内部查找并在它无法在其 $templateCache 本地找到模板时通过 XHR 获取模板。当 XHR 请求很慢或者我们的模板足够大时,它会对最终用户的体验产生严重的负面影响。我们可以通过将模板包装到 JavaScript 文件并将 JavaScript 文件与应用程序的其余部分一起发送来伪造模板缓存加载,而不是获取模板 XHR。

示例:

angular.module('myApp')
.run(['$templateCache', function($templateCache) {
$templateCache.put('xyz.html', ...);
}]);

因此,除非您非常确定要从 $templateCache 中删除缓存的模板,否则不要这样做。

关于javascript - AngularJS:什么是 $templateCache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25364568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com