关于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中操作时间之setYear()方法的使用
Jun 12 Javascript
向JavaScript的数组中添加元素的方法小结
Oct 24 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
Node.js返回JSONP详解
May 18 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
JavaScript实用代码小技巧
Aug 23 Javascript
微信小程序实现文字跑马灯
May 26 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
Python 实现一行输入多个值的方法
2018/04/21 Python
Python docx库用法示例分析
2019/02/16 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
Python输出指定字符串的方法
2020/02/06 Python
C有"按引用传递"吗
2016/09/06 面试题
十八大闭幕感言
2014/01/22 职场文书
消防安全宣传标语
2014/06/07 职场文书
高中班级口号
2014/06/09 职场文书
激励口号大全
2014/06/17 职场文书
三峡导游词
2015/01/31 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS