解决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. npm i -D和-s及-g以及--save的那些事

      i 是 install 的简写 -S 就是 --save 的简写 -D 就是 --save-dev 的简写 npm i module_name -S = > npm install modu ...

  2. 【译】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

    第一章 简介 太赫兹波是介于微波和光波之间的光谱区域,频率从 0.1THz ~ 10THz 之间,波长在 3mm ~ 30μm 之间.提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的 ...

  3. BasicSample项目说明

    整个示例项目,两个Fragment,ProductListFragment和ProductFragment,一个MainActivity.在MainActivity里面展示的是ProductListF ...

  4. 【Unity3D】缩放、平移、旋转场景

    1 前言 ​ 场景缩放.平移.旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换. ​ 对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那 ...

  5. Java并发编程实例--20.使用Semaphores(信号量)控制资源的并发读取

    前面我们介绍了2种同步机制: 1)使用synchronized关键字 2)使用Lock接口及其实现类: ReentrantLock,ReentrantReadWriteLock.ReadLock, a ...

  6. Android使用SurfaceView实现签名板

    SurfaceView使用 首先创建一个SurfaceViewSign类,继承SurfaceView类,继承 SurfaceHolder.Callback和Runnable接口,代码如下: impor ...

  7. 记一次 QT VS Tools 无法配置 version 的问题

    问题概述: 在 QT VS Tools 拓展工具中添加多个 qt 版本的静态库时,发现输入完 Name 和 Path 之后点击 OK,新输入的 version 路径并没有保存成功 测试的 QT VS ...

  8. C++ STL学习

    C++ STL学习 目录 C++ STL学习 容器库概览 对可以保存在容器中的元素的限制 容器支持的操作 所有容器都支持的操作或容器成员 迭代器 迭代器的公共操作 迭代器的类型 迭代器的const属性 ...

  9. centos7 安装vmware tool 遇到遇到 kernel-headers 问题修复

    安装 vmware tool 步骤 1. cp VMwareTools-10.3.25-20206839.tar.gz 到 用户目录下 2. tar zxf VMwareTools-10.3.25-2 ...

  10. 配置kube-apiserver基于token的认证机制

    Kubernetes除了提供了基于CA证书的认证方式,也提供了基于HTTP Token的简单认证方式.各客户端组件与API Server之间的通信方式仍然采用HTTPS,但不采用CA数字证书.这种认证 ...