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

缓存篇

一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求。多次重复地获取资源可能会导致数据重复,消耗时间。因此缓存适用于变化性不大的一些数据,缓存能够服务的请求越多,整体系统性能就能提升越多。

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

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

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\" 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\'; 

好了……就这么多了

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容