解决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. 常用TS总结

    自己常用的 TS 写法总结,应该会一直更新.可使用 TS在线编译 校验 TS 语法. 基本用法 普通 const num: number = 10 const isStop: boolean = fa ...

  2. TfrxReport.Clear。尽量慎用。

    for MyXuHaoKey in MyXuHaoJianRongSanJieKouDataDicApi.KeySortList do begin //标记下打印编号,吸入淘打的客户 MyTradeA ...

  3. .NET 云原生架构师训练营(模块二 基础巩固 配置)--学习笔记

    2.2.3 核心模块--配置 IConfiguration Options ASP.NET Core 中的配置:https://docs.microsoft.com/zh-cn/aspnet/core ...

  4. Linux shell的while循环

    while循环 #!/bin/bash #其中":"表示while循环的条件永远为真的意思 while : do read -p "Enter a number [1-5 ...

  5. push竟比concat快上数百倍?记一个concat在十万级数据引发的性能问题

    壹 ❀ 引 公司产品一直在做企业项目研发工具,所以我们自己当然也会用自己的产品去管理公司大小项目,但在此之前,项目管理体验上一直存在一个卡顿问题.比如我刚登录上账号,在项目里随便到处点点到处跳转页面, ...

  6. 当我忘记SQL怎么写的时候,我……

    当我忘记SQL怎么写的时候,我-- 以往的我,打开电脑百度一番,打开笔记查询一轮,发现没找到我最想要的 不要慌,问题不大 后来发现MySQL本身就带有帮助文档. 于是我一顿操作:win+R >& ...

  7. 两个数组的交集II

    两个数组的交集II 给定两个数组,编写一个函数来计算它们的交集. 示例 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 输入:nums1 = [4,9,5], ...

  8. el-dialog关闭后重置表单和校验提示

    问题说明 最近测试反馈操作某新增/修改表单,点击[取消]或[关闭]窗口后再次点击[新增]或[修改]发现校验提示仍然存在! 问题原因 项目采用Vue+ElementUI,修改表单的窗口控件采用el-di ...

  9. 神经网络优化篇:详解TensorFlow

    TensorFlow 先提一个启发性的问题,假设有一个损失函数\(J\)需要最小化,在本例中,将使用这个高度简化的损失函数,\(Jw= w^{2}-10w+25\),这就是损失函数,也许已经注意到该函 ...

  10. win32 - this 指针

    this指针是存在与类的成员函数中,指向被调用函数所在的类实例的地址. 根据以下程序来说明this指针, #include<iostream.h> class Point { int x, ...