2012-08-17 44 views
0

我正在使用名爲facebox的jquery插件。它工作得很好,但我面臨着!有一個問題。它看起來像iframe方法導致我的瀏覽器緩存目標頁面中加載的css。css和js文件正在被iframe緩存

這就是我在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. 在前端添加在目標頁面的頭部

    元HTTP的當量=「緩存控制」內容=「無緩存」

    META HTTP-當量= 「附註」 CONTENT = 「無緩存」

    META HTTP-當量= 「過期」 內容= 「0」

  2. 我試圖從代碼後面添加一些標頭(php)

    header(「Cache-Control:no-cache」);

    header(「Pragma:no-cache」);

所有沒有成功.. 我在想什麼?

回答

2

您可以隨時嘗試「版本控制」頁面上的CSS參考。有很好的和不太好的方法來做到這一點:使用一個單一的靜態版本號,每次修改時附加一個靜態版本號,或者隨機生成一個GUID,這將有效地強制對頁面的每個請求檢索CSS文件S)。更好的選擇是靜態的,如下所示:

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

yee it works!但它然後再緩存....我應該每次添加像一個隨機數的東西? – themis 2012-08-17 06:07:42

+0

知道這是怎麼回事 – 2012-08-17 06:07:50

+0

咋它的作品!謝謝 – themis 2012-08-17 06:08:25

1

嘗試使用CSS文件名(通常爲版本號)拋出一個var,以便瀏覽器不能緩存它。類似foo.css?ver = bar