600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > angularjs ajax 缓存 angularJs清除浏览器缓存的方法

angularjs ajax 缓存 angularJs清除浏览器缓存的方法

时间:2022-05-20 03:31:33

相关推荐

angularjs ajax 缓存 angularJs清除浏览器缓存的方法

一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求。多次重复地获取资源可能会导致数据重复,消耗时间。因此缓存适用于变化性不大的一些数据,缓存能够服务的请求越多,整体系统性能就能提升越多。本文我们和大家分享angularJs清除浏览器缓存的方法。

浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。

以下是传统的清除浏览器的方法

meta方法

//不缓存

清理form的临时缓存

ajax清除缓存

$.ajax({

url:'',

dataType:'json',

data:{},

cache:false,

ifModified :true ,

success:function(response){

//操作

}

async:false

});

用随机数,随机数也是避免缓存的一种很不错的方法!

URL 参数后加上 "?ran=" + Math.random(); //当然这里参数 ran可以任意取了

用随机时间,和随机数一样。

在 URL 参数后加上 "?timestamp=" + new Date().getTime();

用php后端清理

在服务端加 header("Cache-Control: no-cache, must-revalidate");等等(如php中)

下面介绍关于angularJs项目中清除浏览器的方法,当然以上传统的方法也是可以适用的,但对于angularJs来说还需添加以下几项:

一、清除模板缓存

.run(function($rootScope, $templateCache) {

$rootScope.$on('$routeChangeStart', function(event, next, current) {

if (typeof(current) !== 'undefined'){

$templateCache.remove(current.templateUrl);

}

});

});

二、html添加随机参数

.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'

}

}

})

三、清除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.mon["X-Requested-With"] = 'XMLHttpRequest';

$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';

$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';

相关推荐:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。