关于angularJs清除浏览器缓存的方法

来源:互联网 发布:网络加速原理 编辑:程序博客网 时间:2024/05/10 04:21

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

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

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的临时缓存

<body onLoad="javascript:document.yourFormName.reset()">

ajax清除缓存

$.ajax({     url:'www.haorooms.com',     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'                    }                }             })
 <link rel="stylesheet" href="stylesheets/main.css?version=1.0.3">


三、清除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';



好了……就这么多了

如果还有其他方法欢迎指点迷津!

原创粉丝点击