当前位置:  开发笔记 > 编程语言 > 正文

Angular $ templateCache vs HTML5浏览器缓存

如何解决《Angular$templateCachevsHTML5浏览器缓存》经验,为你挑选了1个好方法。

我试图围绕缓存的概念.我没有广泛使用它并且有关于使用Angular $templateCache和浏览器Cache的问题:

1)浏览器的缓存和Angular的$ templateCache是​​否相互竞争?IE一般来说他们存储的是同一类型的东西吗?

鉴于Angular是如何'自以为是',在开发Angular应用程序时,我会假设$templateCache如果他们存储相同类型的东西,则鼓励您使用浏览器.如果他们确实存储了相同类型的东西,那么使用它们的优缺点是什么?

2)动态生成的HTML如何适合讨论使用哪个缓存(如果它们存储不同的东西)?

3)一般来说使用缓存是否有任何缺点?



1> Malkus..:

$templateCache与浏览器缓存完全分开.

浏览器缓存:缓存myapp.js和fancy.css等文件,以便您的浏览器不必从服务器获取文件(如果它具有最近缓存的副本)

$ templateCache:是angularjs存储和跟踪html片段的方式,这些片段在第一次加载后用于不同的角度组件/模块(尽管您可以选择$templateCache直接加载).该$templateCache重建每次重新加载应用程序时,它不跨浏览器持久.

angular之所以这样做是因为您可能会为多个模板重复使用相同的html文件(或者它可能会在您的网站上多次出现,例如使用指令时).这允许angular知道它已经具有该片段并且可以从缓存加载它.

几个问题的答案


这两个缓存如何与HTTP请求交互?

您无法缓存$.ajax$http请求,但这只会影响获取静态内容,如javascript文件,css文件和图像.浏览器缓存的优势在于它可以改善用户体验/性能.如果他们昨天刚刚在您的网站上,他们不必等待下拉所有相关的静态内容.

angularjs $ templateCache根本不与http交互.虽然资源可能来自http提取,但您的浏览器可能会缓存该文件.Angular正在选择组织和跟踪html的那些片段.

为了更好地举例说明这个片段:

angular.module('directivesModule').directive('mySharedScope', function () {
    return {
        template: 'Name: {{customer.name}}
Street: {{customer.street}}' }; });

$templateCache即使html在指令定义中是内联的,上面模块中的模板仍然会将其html添加到angular .

一般使用缓存有什么缺点(缓存文件或来自HTTP请求的响应)

在静态内容的更新版本中,您必须要小心.您可以通过各种类型的缓存清除来解决这个问题.

例如: 你更新你的myapp.js,现在它是1.2用户浏览器现在不会这样,他们会加载旧版本的网站.

要解决此问题,您可以更改名称.这将强制用户浏览器获取最新的文件.

恩.myapp_1.1.js到myapp_1.2.js

同样,angularjs $templateCache它不受此影响,因为它不是持久性的.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有