能用JS或者前端的啥方法实现清除浏览器缓存吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能用JS或者前端的啥方法实现清除浏览器缓存吗相关的知识,希望对你有一定的参考价值。

可以用JS实现清除浏览器缓存,解决方法如下:

1、在静态页面也就是以.html,.jsp,.aspx,.php结尾的文件中在<dead></head>中加入以下代码。

2、如果是用ajax异步请求服务器,加上beforeSend代码。

3、或者直接将cache设为false,如图。

4、再或者是将要请求的服务器的文件,多加一个随机参数,一般为时间戳,如?ran=Math.rand();如图。


注意事项:

javascriptJavaScript基于对象和事件驱动并具有相对安全性的客户端脚本语言。也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。

参考技术A

目的:清除浏览器缓存

浏览器缓存:有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。

使用方法:JS或者Jquery

方法一: meta方法用客户端代码使浏览器不再缓存Web页面:

<head>
<meta   http-equiv="Expires"   CONTENT="0">
<meta   http-equiv="Cache-Control"   CONTENT="no-cache">
<meta   http-equiv="Pragma"   CONTENT="no-cache">
</head>

方法二: 清理form表单的临时缓存

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

还可以利用jquery ajax清除浏览器缓存

方式一:用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下:

$.ajax(
    url:'
,
    dataType:'json',
    data:,
    beforeSend :function(xmlHttp) 
       xmlHttp.setRequestHeader("If-Modified-Since","0"); 
       xmlHttp.setRequestHeader("Cache-Control","no-cache");
    ,
    success:function(response)
        //操作
    
    async:false
 );

方式二:直接用cache:false,

$.ajax(
    url:'
,
    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");

以上是网上常用的清除方法,另外在java中可以通过:JAVA后端清除Session缓存方法来实现

session.removeAttribute("user");  
session.removeAttribute("constant_cache");  
session.invalidate();

参考技术B

为什么要清除缓存呢,如果想不缓存,每次只要带不同的时间戳就可以了

在IE或者其他的很多浏览器中,如果你每次请求的地址是相同的,浏览器就不会去连接服务器而是去读取缓存,这样对于很多应用来时是非常好的,可以降低服务器的压力或者减少带宽的使用,但是对于ajax应用,很多都是必须保持时时的连接与服务器进行交互

所以需要使用一个小技巧,时间戳来使每次的请求地址都不同,从而跳过浏览器的缓存机制实现每次的请求服务器,这样的功能在图片验证码的时候也是比较常用的一种方法

        function convertURL(url)  
            var timestmp = (new Date()).valueOf();  
            //将时间戳追加到url上面  
            url = url+ "&t=" +timestmp;  
            return url;   
        

建议这样操作比较好,如果清理缓存,还要设置定时清理器,会比较麻烦

参考技术C 缓存都是针对具体对象的,比如图片、css、cookies、input输入项。
清楚img和css可通过前端修改文件后缀来忽略缓存,删除缓存网页是没有权限的。

js清除浏览器的缓存的方法

许多的项目当中,一旦改动了js的代码,必须在浏览器当中重新加载数据,清理缓存,比较麻烦。网上找了很多的清除浏览器的方法,首先是在 html的头部加上meta的属性,但是发现并没有什么用处,后来看到说在js上增加随机的数字或者版本号就可以解决这个问题,无奈不知道怎么加,现在终于知道了如何在js上直接给他加上版本或者随机数字,方法很简单,无奈不知道以前为啥就不知道这样加,还弄了很多种错误的想法。

代码如下

    <script>
    document.write("<s" + "cript type=\'text/javascript\' src=\'/js/main.js?" + Math.random() + "\'></scr" + "ipt>");
    </script>

  

 

以上是关于能用JS或者前端的啥方法实现清除浏览器缓存吗的主要内容,如果未能解决你的问题,请参考以下文章

JS如何清除IE浏览器缓存

前端开发JavaScript清除浏览器缓存的方法

iframe子页面访问过后相应js 缓存在浏览器,怎么不缓存

网站发布到服务器 不能加载js和css

后台修改js或者css文件之后,客户端刷新但是无效的问题

清除浏览器缓存?