本文主要是介绍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文件也可以用以上办法来防止被浏览器莫名的缓存了。
这篇关于xml被浏览器缓存了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!