在页面之间进行路由时,我尝试了几项清除浏览器缓存的内容。像cache: false
,index.html?x=1
,target="_self"
,disableCache: true, in $routeProvider as well
。但是这些都没有用for me.finaly $window.location.reload();
working.but我不想每次路由时重新加载页面。在AngulerJs中有路由缓存的完美解决方案吗?
方案
在我的header.html
中ng-if="currentPath ==='/store'"
。它会检查当前路径,并在store
header.html
相关的一些样式
header.html中
<div class="container" ng-if="currentPath ==='/store'">
<div class="col-xs-8 buttons" >
<a class="brand" href="#" target="_self"><img src="img/logo.png" /></a>
<a class="btns" href="#Store" target="_self">Store</a>
</div>
<ul class="col-xs-4 icons">
<li ><a href="#/profile" class="display_name"><i class="fa"></i>{{user.email}}</a></li>
<li><a href="#/cart"> <span ng-show="cart_size > 0" class="count">{{cart_size}}</span></a></li>
</ul>
<--some styles for store.......-->
</div>
<div class="container" ng-if="currentPath !=='/store'">
<div class="col-xs-8 buttons" >
<a class="brand" href="#" target="_self"><img src="img/logo.png" /></a>
<a class="btns" href="#Store" target="_self">Store</a>
</div>
</div>
当前问题
当我进入store
页面时,我必须刷新浏览器以在标题中显示商店样式。
之后进入另一个页面,商店样式仍然显示在header.then我必须再次刷新。
如何解决这个问题?
答案 0 :(得分:0)
您可以尝试
angular.element('html[manifest=saveappoffline.appcache]').attr('content', '');
您要禁用缓存的位置。
manifest属性指定文档缓存清单的位置。
HTML5引入了应用程序缓存,这意味着Web应用程序 缓存,无需互联网连接即可访问。
应用程序缓存为应用程序提供了三个优点:
离线浏览 - 用户可以在离线时使用该应用 速度 - 缓存资源加载速度更快
- 醇>
减少服务器负载 - 浏览器只会从服务器下载更新/更改的资源
清单属性应包含在网络的每个页面上 您希望缓存的应用程序。
清单文件是一个简单的文本文件,列出了资源 浏览器应该缓存以供离线访问。
要了解有关如何创建清单文件的更多信息,请阅读我们的 HTML5应用程序缓存章节。
您可以尝试的另一种解决方案是在角度应用标头上添加以下代码段,以便永远不会缓存您的网页。
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>