关于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 相关文章推荐
js解析与序列化json数据(二)序列化探讨
Feb 01 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
jQuery截取指定长度字符串代码
Aug 21 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
基于jquery实现二级联动效果
Mar 30 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
详解vue-router 路由元信息
Sep 13 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
May 13 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 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
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
详解用python计算阶乘的几种方法
2019/08/14 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
python爬虫用mongodb的理由
2020/07/28 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
如何高效率的查找一个月以内的数据
2012/04/15 面试题
用友笔试题目
2016/10/25 面试题
股票投资建议书
2014/05/19 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2014年团支部工作总结
2014/11/17 职场文书
质检员岗位职责
2015/02/03 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
zabbix配置nginx监控的实现
2022/05/25 Servers