2011-06-12 93 views
3

我正在做Facebook應用程序開發。真正讓我煩惱的是隨機的,當我改變我的CSS樣式表/添加一個javascript函數。瀏覽器根本沒有反映出變化。這真的很煩人,因爲我永遠無法看到我剛剛做出的更改。如何防止瀏覽器高速緩存

例如。我改變了我的CSS樣式表,所以img1從100px移動到50px。但在firfox/chrome中,img從未移動過一點。

我在腳本中添加了一個javascript函數a()。但瀏覽器的控制檯告訴我一個()沒有定義。我已經通過代碼檢查了10次,沒有錯誤。

有人能告訴我這裏有什麼可能的問題,以及如何解決它?

我用我的MAC作爲託管服務器BTW

感謝

回答

5

可以時間戳或其他唯一字符串添加到您不想要的文件的文件名被緩存,無論是在實際文件名或作爲GET參數:

<link rel="stylesheet" type="text/css" 
     href="http://cdn.sstatic.net/stackoverflow/all.css?v=4fd8a9d8937d"> 

取決於你使用的服務器頁面的服務器端語言,你可以這樣做:

PHP(使用filemtime - 它返回一個文件的修改時間):

<link rel="stylesheet" type="text/css" 
     href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<?php echo filemtime('/your_css_file.css'); ?>"> 

紅寶石(使用File.mtime它返回一個文件的修改時間):

<link rel="stylesheet" type="text/css" 
     href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<% print File.new("testfile").mtime.to_time.to_i('/your_css_file.css'); %>"> 

如果您使用該文件的修改時間,只有在用戶修改後纔會再次下載該文件。

3

包括你的JS/CSS文件時,包括時間戳作爲PARAM,這樣的事情應該這樣做:

<link rel="stylesheet" href="css/screen.css?<?php echo time(); ?>" media="all" 
type="text/css" />