iframe正在缓存css和js文件

时间:2012-08-17 05:53:56

标签: php javascript jquery facebox

我正在使用名为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代码,它仍在加载旧代码。

我也尝试了以下内容:

  1. 在头部的前端添加目标页面

    meta http-equiv =“Cache-control”content =“no-cache”

    meta http-equiv =“Pragma”content =“no-cache”

    meta http-equiv =“Expires”content =“0”

  2. 我尝试从代码后面添加一些标题(php)

    header(“Cache-Control:no-cache”);

    标题(“Pragma:no-cache”);

  3. 一切都没有成功.. 我错过了什么?

2 个答案:

答案 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