解决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. 零基础入门学习Java课堂笔记 ——day04

    Java数组 1.数组概述 定义:数组是相同类型的有序集合,同一组同一类型的数据可以按照先后次序排列组合在一起,其中一个数据可以称为元素,每个数组元素可以通过一个下表访问它们 2.数组声明创建 dat ...

  2. yapi 个人空间 这个分组的问题

    总结:yapi个人空间分组的问题,我暂时不用理睬 他自己自由,但是 不允许他 创建非个人空间的分组.这点留意 避免不统一.所有的分组都必须我自己来创建,不允许他们私自创建.

  3. .NET Core开发实战(第23课:静态文件中间件:前后端分离开发合并部署骚操作)--学习笔记(下)

    23 | 静态文件中间件:前后端分离开发合并部署骚操作 这里还有一个比较特殊的用法 一般情况下,我们前后端分离的架构,前端会编译成一个 index.html 文件和若干个 CSS 文件和 JavaSc ...

  4. 【幻兽帕鲁】专用服务器攻略来啦!一键部署,5s开服

    本文分享自华为云社区<全网最易用.最实用.最好用的[幻兽帕鲁]专用服务器攻略来啦!一键部署,5s开服!>,作者: 云容器大未来. 华为云隆重推出"帕鲁服务器-云耀云容器版&quo ...

  5. 【Lua】ToLua逻辑热更新

    1 前言 ​ Lua基础语法 中系统介绍了 Lua 的语法体系,xLua逻辑热更新 中介绍了 xLua 的应用,本文将进一步介绍 Unity3D 中基于 ToLua 实现逻辑热更新. ​ 逻辑热更新是 ...

  6. 【Android】使用ContentProvider实现跨进程通讯

    1 前言 ​ ContentProvider 即内容提供器,是 Android 四大组件之一,为 App 存取数据提供统一的对外接口,让不同的应用之间可以共享数据. ​ 如图,Server 端通过 C ...

  7. idea自定义代码片段live template

    1.介绍 有时在idea编辑器经常会写同一个代码块,那么这个代码块就可以利用live template功能把它定义成可根据关键字触发的代码片段,效果如下图: 2.操作步骤 此处我们就以springbo ...

  8. oracle中使用自定义函数解析指定分隔符的字符串

    1.创建字符串表类型 create type tab_varchar is table of varchar2(2000); 2.创建管道函数 create or replace function g ...

  9. win32-SetupDiSetClassInstallParamsW的使用

    SetupDiSetClassInstallParams函数一般是用来禁用/启用某个设备 比如我们可以禁用网络适配器 /* for Devpkey */ #define INITGUID /* dep ...

  10. 【libGDX】使用Mesh绘制立方体

    1 前言 ​ 本文主要介绍使用 Mesh 绘制立方体,读者如果对 Mesh 不太熟悉,请回顾以下内容: 使用Mesh绘制三角形 使用Mesh绘制矩形 使用Mesh绘制圆形 ​ 在绘制立方体的过程中,主 ...