2

我正在使用一个名为 facebox 的 jquery 插件。它工作得很好,但我面临着!有问题。看起来它的 iframe 方法导致我的浏览器缓存正在加载到目标页面中的 css。

这就是我在 jquery 就绪状态的页面中调用它的方式。

$('a.participate').click( function(){
            $.facebox({
                iframe: '" . $urlparticipate . "',
                rev: 'iframe|550|550'
            });
            return false ;
        });

其中 $urlparticipate 是将在 iframe 中打开的 url。我仔细查看了 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. 在头部前端添加目标页面

    元 http-equiv="缓存控制" 内容="无缓存"

    元 http-equiv="Pragma" 内容="无缓存"

    元 http-equiv="过期" 内容="0"

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

    header("缓存控制:无缓存");

    header("Pragma: no-cache");

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

4

2 回答 2

4

您可以随时尝试对页面上的 CSS 参考进行“版本控制”。有好方法和不太好的方法:每次进行更改时都附加一个静态版本号,或者使用随机生成的 GUID,这将有效地强制对页面的每个请求以检索 CSS 文件( s)。更好的选择是静态的,像这样:

<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />
于 2012-08-17T06:03:57.127 回答
1

尝试使用 CSS 文件名(通常是版本号)抛出一个 var,这样浏览器就无法缓存它。类似 foo.css?ver=bar

于 2012-08-17T06:02:51.167 回答