`

解决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产生了相关的临时文件,两者搭配使用真是清空缓存,必备良药。正好我这里有了记录,所以常来看看哦。 


我用的是在地址后加Math.random()!!!!!!!!!!!使得地址重新调用服务器,而不是使用IE缓存。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics