浏览器缓存,舍或留

浏览器缓存,可以减少服务器与客户端的交互,减少服务器压力。但有时不需要缓存呢?
如果我动态插入了一个script元素,去请求webwork,即通过<script src=""/>这种方式去请求服务器。但浏览器缓存使我拿不到服务器返回的新的数据。
这里有一种解决方法,是在url参数中添加随机数,如
<script src="$appUrl/probe/probe.jspa?rn="+Math.random()+..."/>
对于其他形式的http请求如asp,
Response.Buffer = True 
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

对于Ajax 的请求
xmlhttp.setRequestHeader("Cache-Control","no-cache");  
//或
xmlhttp.setRequestHeader("If-Modified-Since","0");
//或
xmlhttp.Open(url+'?rn='+Math.random(),....)

但这样会形成一种极端,即每次都必须从服务器去请求数据,即使没有任何更改。所以只有在js或css需要经常变更的情况下使用,且最好对服务器进行压力测试。
可不可以动态来决定请求还是不请求服务器呢?除非判断准则为客户端就可以获取的数据,而不经过服务器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值