AngularJS ng-include缓存

MR.*_*ABC 14 javascript angularjs

我喜欢包含ng-include属性的模板.我想知道模板是否在多次使用相同的URL时被缓存.

<div ng-include src="'./Views/temp.html'"></div> //get request temp.html
<div ng-include src="'./Views/temp.html'"></div> //load from cache
Run Code Online (Sandbox Code Playgroud)

dre*_*w_w 37

缓存通常用于-但它不是对角的一部分,而是在浏览器上的一部分.您可以通过运行Fiddler并查看页面加载时会发生什么来看到这一点.如果从服务器返回304结果代码,则表示页面未更改 - 因此将从缓存中提取.

强制重新加载

一致强制重新加载的唯一好方法是添加查询字符串,如下所示(您可以将"i"替换为您想要的任何变量,数字只需要是随机的 - 不是以前使用过的数字):

<div ng-include src="'./Views/temp.html?i=1000'"></div> // get request temp.html
<div ng-include src="'./Views/temp.html?i=1001'"></div> // force the page to load!
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

  • 它实际上是由angular缓存的,请参阅$ templateCache的角度文档:https://docs.angularjs.org/api/ng/service/$templateCache (6认同)
  • 我想添加一个简单的方法来完全(真正完全)Chrome 中的网站是使用 F12 打开调试控制台,然后右键单击屏幕顶部的重新加载按钮并选择最后一个选项。这是必需的,因为 Shift+F5 似乎不会清除模板缓存 (2认同)