php - css 和 js 文件被 iframe 缓存

标签 php javascript jquery facebox

我正在使用一个名为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. 在前端目标页面头部添加

    meta http-equiv="Cache-control"content="no-cache"

    meta http-equiv="Pragma"content="no-cache"

    meta http-equiv="Expires"content="0"

  2. 我尝试从代码隐藏(php)添加一些 header

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

    header("Pragma: 无缓存");

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

最佳答案

您始终可以尝试对页面上的 CSS 引用进行“版本控制”。有好的和不太好的方法可以做到这一点:使用每次进行更改时附加的单个静态版本号,或者随机生成的 GUID,该 GUID 将有效地强制对页面的每个请求检索 CSS 文件( s)。更好的选择是静态选项,如下所示:

<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />

关于php - css 和 js 文件被 iframe 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000468/

相关文章:

php - Laravel:在自定义 Route::model 绑定(bind)中使用模拟实例

php - 如何从该数组中选择一个数据集

javascript - 使用多层时,KineticJS/Canvas 会使 ipad 上的 safari 崩溃吗?

ajax - jquery mobile ajax同时发送GET和POST请求

javascript - 在 JavaScript 中检查日期是否在给定年份的 1 月 1 日之前

javascript - 使用负 scrollTop/scrollLeft 值进行动画处理

php - 验证新西兰电话号码的正则表达式

php - 如何在 php 中制作一个表单,允许用户在需要时添加其他表单字段?

javascript - 使用 JQuery 或 Ajax 加载 .txt 文件

javascript - 如何在 React-native 的 ScrollView 中使用 flex-wrap