解决js缓存地址问题





js实现不缓存



<META HTTP-EQUIV="pragma" CONTENT="no-cache">



<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">



<META HTTP-EQUIV="expires" CONTENT="0">



不缓存js的方法



<script>



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



</script>



其他的类似,只需在地址后加上+Math.random()



注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以



若上面改为



(<script type=”text/javascript“ src=”/js/test.js?+Math.random()“></script>



则无法实现不缓存



js文件不缓存



每次连接的地址变化,利用js随机数



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



禁用页面缓存的几种方法(静态和动态)



  1、在Asp页面首部<head>加入    以下是引用片段:



   Response.Buffer    =    True   



   Response.ExpiresAbsolute    =    Now()    -    1   



   Response.Expires    =    0   



   Response.CacheControl    =    "no-cache"   



   Response.AddHeader    "Pragma",    "No-Cache"







2、在HtML代码中加入  



以下是引用片段:



   <HEAD>   



   <META    HTTP-EQUIV="Pragma"    CONTENT="no-cache">   



   <META    HTTP-EQUIV="Cache-Control"    CONTENT="no-cache">   



   <META    HTTP-EQUIV="Expires"    CONTENT="0">   



   </HEAD>







   



3、在重新调用原页面的时候在给页面传一个参数    Href="****.asp?random()"



  前两个方法据说有时会失效,而第三种则是在跳转时传一个随机的参数! 因为aspx的缓存是与参数相关的,如果参数不同就不会使用缓存,而会重新生成页面,每次都传一个随机的参数就可以避免使用缓存。这个仅适用于asp&asp.net



  4、在jsp页面中可使用如下代码实现无缓存:



以下是引用片段:



response.setHeader("Cache-Control","no-cache"); //HTTP 1.1



response.setHeader("Pragma","no-cache"); //HTTP 1.0



response.setDateHeader ("Expires", 0); //prevents caching at the proxy server







  这些代码加在<head> </head>中间具体如下



以下是引用片段:



<head>



<%



response.setHeader("Cache-Control","no-cache"); //HTTP 1.1



response.setHeader("Pragma","no-cache"); //HTTP 1.0



response.setDateHeader ("Expires", 0); //prevents caching at the proxy server



%>



</head>







  5、window.location.replace("WebForm1.aspx");  



参数就是你要覆盖的页面,replace的原理就是用当前页面替换掉replace参数指定的页面。  



这样可以防止用户点击back键。使用的是javascript脚本,举例如下:



  a.html



以下是引用片段:



<html>



     <head>



         <title>a</title>     



         <script language="javascript">



             function jump(){



                 window.location.replace("b.html");



             }



         </script>



     </head>



     <body>



        <a href="javascript:jump()">b</a>



    </body>



</html>







  b.html



以下是引用片段:



<html>



     <head>



         <title>b</title>     



         <script language="javascript">



             function jump(){



                 window.location.replace("a.html");



             }



         </script>



     </head>



     <body>



        <a href="javascript:jump()">a</a>



    </body>



</html>







  前4种只是清空了cache,即存储在Temporary Internet Files文件夹中的临时文件,而第五种则是使用跳转页面文件替换当前页面文件,并没有清空cache,也就是说Temporary Internet Files产生了相关的临时文件,两者搭配使用真是清空缓存,必备良药。正好我这里有了记录,所以常来看看哦。

解决js缓存地址问题的更多相关文章

  1. vue cli3.0 build 打包 的 js 文件添加版本号 解决 js 缓存问题

    在 vue.config.js 的文件中加入下面这段话 // vue.config.jsconst Timestamp = new Date().getTime();module.exports = ...

  2. vue cli3.0 build 打包 的 js 文件添加时间戳 解决 js 缓存问题

    // vue.config.jsconst Timestamp = new Date().getTime();module.exports = { configureWebpack: { // web ...

  3. Gulp解决发布线上文件(CSS和JS)缓存问题

    Gulp解决发布线上文件(CSS和JS)缓存问题 本文的缘由:目前经常线上发布文件后要不断的刷新页面及过很长时间,页面上的CSS和JS文件才能生效,特别对于目前做微信商城的时候,微信内置的浏览器缓存非 ...

  4. js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();)

    js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();) ...

  5. js 给url添加时间戳 解决浏览器缓存

    //解决浏览器缓存 function timestamp(url){      //  var getTimestamp=Math.random(); var getTimestamp=new Dat ...

  6. 使用call、apply和bind解决js中烦人的this,事件绑定时的this和传参问题

    1.什么是this 在JavaScript中this可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式,this 绑定的对象即函数执行的上下文环境(context). 为了帮助理解,让我 ...

  7. js缓存问题,修改js后代码不生效

    问题描述 最近在上线新版本项目的时候,发现有的用户的操作还是调用的老版本JS里面的内容,这样就造成原来新的JS里面加上的限制不能限制用户的操作,从而导致用户可以重复操作. 问题产生原因 如果在用户之前 ...

  8. 如何解决js跨域问题

    Js跨域问题是web开发人员最常碰到的一个问题之一.所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下的数据对象,出于安全性考 虑,几乎所有浏览器都不允许这种跨域访问,这就导致在一些a ...

  9. js缓存

    jsp页面加载的js有时候会有缓存 可以给引入的js加一个版本号,-------版本号不一致,会重新加载 <script type="text/javascript" src ...

  10. 学以致用:手把手教你撸一个工具库并打包发布,顺便解决JS浮点数计算精度问题

    本文讲解的是怎么实现一个工具库并打包发布到npm给大家使用.本文实现的工具是一个分数计算器,大家考虑如下情况: \[ \sqrt{(((\frac{1}{3}+3.5)*\frac{2}{9}-\fr ...

随机推荐

  1. 【栈和队列】栈和队列的相互实现OJ练习【力扣-232、力扣-225】超详细的保姆级别解释

    [栈和队列]栈和队列的相互实现OJ练习[力扣-232.力扣-225]超详细的保姆级别解释 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要的动力 ...

  2. KVM环境:Active console session exists for this domain

    做测试过程中被迫换电脑,但没有关掉原电脑的连接,所以用其他电脑连接测试环境时,发现之前的kvm测试环境因没有断开,无法连接: error: operation failed: Active conso ...

  3. Asp .Net Core 系列:Asp .Net Core 集成 NLog

    简介 NLog是一个基于.NET平台编写的日志记录类库,它可以在应用程序中添加跟踪调试代码,以便在开发.测试和生产环境中对程序进行监控和故障排除.NLog具有简单.灵活和易于配置的特点,支持在任何一种 ...

  4. CentOS7.5上Oracle19c离线rpm安装

    CentOS7.5上Oracle19c离线rpm安装 一.基础环境配置及依赖安装(1)关闭系统防火墙(如外网环境不能关闭防火墙自行开放相关需要使用的端口即可) systemctl stop firew ...

  5. JS leetcode 存在重复元素 II 题解分析,记一次震惊的负向优化

    壹 ❀ 引 整理下今天做的算法题,题目难度不高,但在优化角度也是费了一些功夫.题目来自219. 存在重复元素 II,问题描述如下: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i ...

  6. Freaktab将于12月底关闭

    出过众多优秀固件的电视盒子论坛Freaktab, 将于2021年12月31日关闭 R.I.P

  7. el-upload使用http-request自定义上传和进度条实战

    介绍 项目中发现使用默认的el-upload上传动作发送上传请求的时候不会带上请求头,于是想通过自定义请求也就是http-request来自定义上传.实践证明这条路是通的,不过有个小问题就是原本上传的 ...

  8. Spring Boot图书管理系统项目实战-11.检索图书

    导航: pre:10.借还统计 next: 只挑重点的讲,具体的请看项目源码. 1.项目源码 需要源码的朋友,请捐赠任意金额后留下邮箱发送:) 2.页面设计 2.1 index.html <!D ...

  9. Python之机器人卡牌

    介绍 这个例子主要利用turtle库实现根据输入动态展示不同机器人的图像和属性信息. 代码部分非原创只是做了些许修改和整理使得更易阅读. 图片和文件资源请访问git仓库获取: https://gite ...

  10. FTP命令详解(含操作实例)

    以下是微软命令行FTP客户端命令大全,如果你想使用"未加工(RAW)"FTP命令而非下面翻译过的请参考:http://www.nsftools.com/tips/RawFTP.ht ...