我在AngularJs中阅读了以下内容 -
' SPA将组成视图,填写模板,并在shell中的适当位置显示视图。如果视图已被查看一次,则浏览器可能已缓存它,并且路由器将足够聪明,不会发出请求。'
这是$routeprovider
的默认行为吗?
这与$templatecacheProvider
有什么关系?
什么是抑制此行为的方法,即强制$routeprovider
不引用浏览器缓存?
答案 0 :(得分:0)
我认为这更多地与$ http服务有关,因为你更关注模板缓存:
https://docs.angularjs.org/api/ng/service/ $ HTTP
<强>缓存强>
要启用缓存,请设置请求配置缓存 property为true(使用默认缓存)或自定义缓存对象 (使用$ cacheFactory构建)。启用缓存后,$ http存储 来自指定缓存中的服务器的响应。下一次 发出相同的请求,响应从缓存中提供 向服务器发送请求。
请注意,即使响应是从缓存提供的,也是如此 数据的异步方式与实际请求的方式相同。
如果对同一个URL有多个GET请求 使用相同的缓存进行缓存,但仅缓存尚未填充 将向服务器发出一个请求,其余请求将发出 使用第一个请求的响应来完成。
您可以将默认缓存更改为新对象(使用 $ cacheFactory)通过更新$ http.defaults.cache属性。所有 将cache属性设置为true的请求现在将使用此缓存 对象
如果将默认缓存设置为false,则只设置指定的请求 他们自己的自定义缓存对象将被缓存。
基本上,当你的应用程序被引导/加载时,你想要设置$httpProvider.defaults.cache = false
这将不会缓存任何模板本身,并在每次路径更改时请求模板。