禁用页面缓存的几种方法(静态和动态)

本文介绍了五种有效清除ASP页面缓存的方法,包括设置HTTP响应头禁止浏览器缓存、利用随机参数避免缓存以及使用JavaScript进行页面替换等。这些方法能够帮助开发者确保用户始终获取到最新页面内容。
 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

  

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

 
### Nginx配置禁用浏览器缓存 对于希望在不同浏览器中禁用缓存的情况,一种有效的方式是通过服务器端配置来影响客户端的行为。当涉及到Nginx时,可以在配置文件中指定特定的HTTP头部信息以指示浏览器不应缓存资源。 针对HTML文件,在Nginx配置里可以加入`add_header Cache-Control "no-store"`这样的语句[^1]: ```nginx location ~* \.(html)$ { add_header Cache-Control "no-store"; } ``` 此设置确保了凡是匹配到`.html`结尾的请求都会被附加上述的`Cache-Control`头部,从而告知浏览器不要存储该类资源的副本。 更广泛地来说,如果目标是对所有类型的静态资源都实施不缓存策略,则可采用更为通用的形式[^2]: ```nginx server { location / { expires -1; add_header Pragma "no-cache"; add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"; } } ``` 这段配置不仅设置了`Cache-Control`为`no-store`,还额外加入了其他几个参数以及`Pragma:no-cache`,进一步强化了对旧版HTTP/1.0兼容性的支持。 除了调整Nginx配置外,还可以直接修改网页本身的HTML代码,在文档头部添加相应的元标签来辅助控制缓存行为[^3]: ```html <meta http-equiv="Expires" content="0"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Cache" content="no-cache"> ``` 这种方法适用于那些无法轻易更改Web服务器配置的情况下,但需要注意的是它仅能作为补充手段而非主要依赖方式。 #### 注意事项 尽管以上方法能够有效地帮助开发者测试期间避免因缓存带来的困扰,但在生产环境中应谨慎考虑是否真的需要完全关闭缓存功能,因为合理的利用缓存可以帮助提高网站性能并减少带宽消耗。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值