關(guān)于angularJs清除瀏覽器緩存的方法
緩存篇
一個(gè)緩存就是一個(gè)組件,它可以透明地儲(chǔ)存數(shù)據(jù),以便以后可以更快地服務(wù)于請(qǐng)求。多次重復(fù)地獲取資源可能會(huì)導(dǎo)致數(shù)據(jù)重復(fù),消耗時(shí)間。因此緩存適用于變化性不大的一些數(shù)據(jù),緩存能夠服務(wù)的請(qǐng)求越多,整體系統(tǒng)性能就能提升越多。
瀏覽器緩存,有時(shí)候我們需要他,因?yàn)樗梢蕴岣呔W(wǎng)站性能和瀏覽器速度,提高網(wǎng)站性能。但是有時(shí)候我們又不得不清除緩存,因?yàn)榫彺婵赡苷`事,出現(xiàn)一些錯(cuò)誤的數(shù)據(jù)。像股票類網(wǎng)站實(shí)時(shí)更新等,這樣的網(wǎng)站是不要緩存的,像有的網(wǎng)站很少更新,有緩存還是比較好的。
以下是傳統(tǒng)的清除瀏覽器的方法
meta方法
//不緩存 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0">
清理form的臨時(shí)緩存
<body onLoad="javascript:document.yourFormName.reset()">
ajax清除緩存
$.ajax({ url:'www.haorooms.com', dataType:'json', data:{}, cache:false, ifModified :true , success:function(response){ //操作 } async:false });
用隨機(jī)數(shù),隨機(jī)數(shù)也是避免緩存的一種很不錯(cuò)的方法!
URL 參數(shù)后加上 "?ran=" + Math.random(); //當(dāng)然這里參數(shù) ran可以任意取了
用隨機(jī)時(shí)間,和隨機(jī)數(shù)一樣。
在 URL 參數(shù)后加上 "?timestamp=" + new Date().getTime();
用php后端清理
在服務(wù)端加 header("Cache-Control: no-cache, must-revalidate");等等(如php中)
下面介紹關(guān)于angularJs項(xiàng)目中清除瀏覽器的方法,當(dāng)然以上傳統(tǒng)的方法也是可以適用的,但對(duì)于angularJs來(lái)說(shuō)還需添加以下幾項(xiàng):
一、清除模板緩存
.run(function($rootScope, $templateCache) { $rootScope.$on('$routeChangeStart', function(event, next, current) { if (typeof(current) !== 'undefined'){ $templateCache.remove(current.templateUrl); } }); });
二、html添加隨機(jī)參數(shù)
.state("content", { url: "/", views:{ "bodyInfo":{templateUrl: 'tpls/bodyInfo.html?'+ +new Date(), controller:'bodyInfoCtrl'}, "header":{templateUrl: 'tpls/header.html?'+ +new Date(), controller:'headerCtrl' }, "footer":{templateUrl: 'tpls/footer.html?'+ +new Date(), controller:'footerCtrl' } } })
<link rel="stylesheet" href="stylesheets/main.css?version=1.0.3" rel="external nofollow" >
三、清除route緩存
.config(['$stateProvider', '$urlRouterProvider','$locationProvider','$httpProvider',function($stateProvider, $urlRouterProvider,$locationProvider,$httpProvider) { // $urlRouterProvider.when("", "/home"); $urlRouterProvider.otherwise('/'); if (!$httpProvider.defaults.headers.get) { $httpProvider.defaults.headers.get = {}; } $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
好了……就這么多了
如果還有其他方法歡迎指點(diǎn)迷津!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS?Angular?服務(wù)器端渲染應(yīng)用設(shè)置渲染超時(shí)時(shí)間???????
- Angular?服務(wù)器端渲染應(yīng)用常見(jiàn)的內(nèi)存泄漏問(wèn)題小結(jié)
- 監(jiān)聽(tīng)angularJs列表數(shù)據(jù)是否渲染完畢的方法示例
- Angular Renderer (渲染器)的具體使用
- AngularJS監(jiān)聽(tīng)ng-repeat渲染完成的方法
- 使用 Angular RouteReuseStrategy 緩存(路由)組件的實(shí)例代碼
- Angular?服務(wù)器端渲染緩存功能問(wèn)題
相關(guān)文章
Angular 2.0+ 的數(shù)據(jù)綁定的實(shí)現(xiàn)示例
本篇文章主要介紹了Angular 2.0+ 的數(shù)據(jù)綁定的實(shí)現(xiàn)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法
AngularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。下面通過(guò)本文給大家分享使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法,需要的的朋友參考下吧2017-07-07解決angularjs中同步執(zhí)行http請(qǐng)求的方法
今天小編就為大家分享一篇解決angularjs中同步執(zhí)行http請(qǐng)求的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Angular搜索 過(guò)濾 批量刪除 添加 表單驗(yàn)證功能集錦(實(shí)例代碼)
這篇文章主要介紹了Angular搜索 過(guò)濾 批量刪除 添加 表單驗(yàn)證功能集錦(實(shí)例代碼),需要的朋友可以參考下2017-10-10使用 Angular RouteReuseStrategy 緩存(路由)組件的實(shí)例代碼
這篇文章主要介紹了使用 Angular RouteReuseStrategy 緩存(路由)組件的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11學(xué)習(xí)AngularJs:Directive指令用法(完整版)
這篇文章主要學(xué)習(xí)AngularJs:Directive指令用法,內(nèi)容很全面,感興趣的小伙伴們可以參考一下2016-04-04在 Angular2 中實(shí)現(xiàn)自定義校驗(yàn)指令(確認(rèn)密碼)的方法
這篇文章給大家探索 Angular 2 內(nèi)建的自定義驗(yàn)證,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01