我正在使用名为facebox的jquery插件。它工作得很好,但我面临着!有问题。看起来它的iframe方法导致我的浏览器缓存目标页面中加载的css。
这就是我在jquery ready状态下在我的页面中调用它的方式。
$('a.participate').click( function(){
$.facebox({
iframe: '" . $urlparticipate . "',
rev: 'iframe|550|550'
});
return false ;
});
其中$ urlparticipate是将在iframe中打开的网址。 我在facebox.js中仔细观察,发现以下方法似乎被插件用来创建iframe。
function fillFaceboxFromIframe(href, klass, height, width) {
$.facebox.reveal('<iframe scrolling="auto" marginwidth="0" width="'+width+'" height="' + height + '" frameborder="0" src="' + href + '" marginheight="0"></iframe>', klass)
}
如何防止css被缓存?我知道这是缓存的,因为我改变了元素的css样式。我甚至改变了一些正在加载的js代码,它仍在加载旧代码。
我也尝试了以下内容:
在头部的前端添加目标页面
meta http-equiv =“Cache-control”content =“no-cache”
meta http-equiv =“Pragma”content =“no-cache”
meta http-equiv =“Expires”content =“0”
我尝试从代码后面添加一些标题(php)
header(“Cache-Control:no-cache”);
标题(“Pragma:no-cache”);
一切都没有成功.. 我错过了什么?
答案 0 :(得分:2)
您可以随时在页面上尝试“版本化”CSS引用。有很好的方法可以做到这一点:使用每次进行更改时附加的单个静态版本号,或者随机生成的GUID,它将有效地强制每个请求到页面检索CSS文件( S)。更好的选择是静态选项,如下所示:
<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />
答案 1 :(得分:1)
尝试使用CSS文件名(通常是版本号)抛出var,以便浏览器无法缓存它。有点像foo.css?ver = bar