xml被浏览器缓存了

之前在做广告投放功能,遇到的一个问题。 在页面上轮播广告,是通过把广告信息保存成xml文件,然后在前台通过唯一的id调取该广告信息,具体用ajax异步响应到xml,把广告内容展示在页面上。 
只是ajax响应xml文件的时候,即使后台对广告信息作了相应的修改,可是读取的还是旧的内容。
起初我以为是xml文件保存错误了,可是经查证,发现xml是正确的,仅仅是浏览器上输出的广告与xml内容不符。
这时我想到了,浏览器在本地缓存。要尝试如何避免浏览器缓存造成的不能正确显示广告内容。
页面是有自己的url的,如果保证url每次不一样的时候,就可以使浏览器重新请求,而不是沿用之前请求过的内容, 也就是说,只要在链接的Url加入了一个不会影响网页的内容的随机字串,从而使得每次访问该网页的Url都不同,就可以使浏览器不使用缓存中已有的该网页,而使每次显示的都是最新的内容。
所以,可以这么做:
在url后面加一个参数,保证参数的值是实时变化的,常用的有跟一个随机数的参数,或者跟一个年月日时分秒的参数。我是用后者的,对以前的代码稍作修改就ok,效果很明显,也彻底解决了这个浏览器缓存的问题。


<span style="font-size:14px;"><span style="white-space:pre">	</span>var myDate = new Date();
    $.ajax({
       url:xx.xml+"?nowTime="+myDate,
       type: 'GET',
       dataType: ($.browser.msie) ? "text" : "xml",
       timeout: 1000,
       error: function(xml){
         alert('Error loading AdsXML document'+xml);
       },
       success: function(data){
           dsCallback(data,tpl);    
       }
    });</span>


其实也有资料说,可以用

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

来避免浏览器的缓存,这样绝不是最佳方法,也有漏网之鱼的可能。

js文件也可以用以上办法来防止被浏览器莫名的缓存了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值