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


Posted in Javascript onNovember 28, 2017

缓存篇

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

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

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

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

好了……就这么多了

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

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

Javascript 相关文章推荐
JavaScript高级程序设计 学习笔记 js高级技巧
Sep 20 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
js实现的简单图片浮动效果完整实例
May 10 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
Jan 11 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
vue实例的选项总结
Jun 09 Javascript
AngularJs 禁止模板缓存的方法
Nov 28 #Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
Nov 28 #Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 #Javascript
Vue.JS项目中5个经典Vuex插件
Nov 28 #Javascript
Vue实现web分页组件详解
Nov 28 #Javascript
基于vue2实现左滑删除功能
Nov 28 #Javascript
JavaScript生成简单等差数列
Nov 28 #Javascript
You might like
Ajax PHP分页演示
2007/01/02 PHP
php whois查询API制作方法
2011/06/23 PHP
三个类概括PHP的五种设计模式
2012/09/05 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
php实现Mysql简易操作类
2015/10/11 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
javascript实现计算器功能
2020/03/30 Javascript
JS实现多选框的操作
2020/06/24 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python 探针的实现原理
2016/04/23 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
python中二分查找法的实现方法
2020/12/06 Python
什么是反射?如何实现反射?
2016/07/25 面试题
售后服务经理岗位职责
2014/02/25 职场文书
运动会演讲稿50字
2014/08/25 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
导游带团欢迎词
2015/09/30 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
mysql insert 存在即不插入语法说明
2022/03/25 MySQL