解决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. map和set的模拟实现|利用红黑树封装map和set|STL源码剖析

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量干货博客汇总https://blog. ...

  2. 内存池是什么原理?|内存池简易模拟实现|为学习高并发内存池tcmalloc做准备

    前言 那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Syshttps://blog.csdn.ne ...

  3. Proxmox的local-lvm改文件存储,提升运行速度

    介绍 Proxmox的缺省安装会创建 local 和 local-lvm 两个存储.其中local大约磁盘容量的10%,存储类别为目录. local-lvm的存储类别为 lvm-thin. 实际使用中 ...

  4. (C语言)格式输出,右对齐

    printf("%8d", i);可以输出整数 i,让它占至少 8 个字符的宽度(即场宽为8):如果 i 不够8 位则在左边补空格使它右对齐满 8 位,如果 i 的输出的位数 ≥ ...

  5. Python 国内常用python模块下载地址

    国内常用python模块下载地址 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 中国科技大学 https://pypi.mirrors.ustc.edu. ...

  6. vue-element-admin iframes 组件 保留 iframe 操作状态

    由于没有时间去维护这个功能,这个仓库我暂停了,当前博客内容和代码只作为实现思路参考 代码贴前面,gitee地址:https://gitee.com/chkhk/vue-element-admin 可以 ...

  7. EGF:指数型生成函数

    对于一个数列 \(<a_n>\),定义其指数型生成函数(EGF)\(\hat{a}(x)=\displaystyle\sum_{n\ge 0}\dfrac{a_n}{n!}x^n\). 例 ...

  8. NC24048 [USACO 2017 Jan P]Promotion Counting

    题目链接 题目 题目描述 The cows have once again tried to form a startup company, failing to remember from past ...

  9. SSIS数据同步系统

    缘起: 若干年前,刚到一家3C类的电商公司做DBA,到公司没几天,公司的CEO和研发总监,说现在要做个事情: 把IDC的数据库的数据,要同步一份到仓库,因单量大,仓库经常爆仓,仓库网络不好时,可以直接 ...

  10. F - Subarrays题解

    F - Subarrays 题意:给你一个序列,问这个序列里有多少个子串的和能被k整除. 思路:求前缀和,然后每个位置对k取模,模数相等的位置之间,是一个满足条件的字串. 因为求的是前缀和,所以取模后 ...