2011-02-13 118 views
1

我有一個在網頁中動態地加載圖像一些JavaScript代碼:HTTP緩存頭

imageSrc = pid.toString() + '/' + imageName + '/' + num.toString(); 
//imageSrc = pid.toString() + '/' + imageName; 

第一線工作正常,但使用第二行導致圖像沒有被加載後更改。我用螢火蟲來捕獲來自服務器的標題:

Content-Length 43 
Allow GET, HEAD 
Expires Sun, 28 Jan 2007 00:00:00 GMT 
Server CherryPy/3.1.2 
Pragma no-cache 
Cache-Control no-cache, must-revalidate 
Date Sun, 13 Feb 2011 21:12:31 GMT 
Content-Type image/x-png 

而且我還增加了行<meta http-equiv="Cache-control" content="no-cache"> 到網頁的頭部。

問題發生在Firefox,IE和Chrome,所以我認爲它必須是一個基本問題,而不是瀏覽器問題。任何幫助,將不勝感激。

回答

0

打敗高速緩存的典型方法是添加一個搜索字符串(注意PNG後的問號):

img.src = path +"/"+ name + ".png?" + (new Date().getTime()); 

BTW,你不需要做的ToString(),因爲該行爲添加變量使他們成爲一個字符串:

"a" + 1 + 1; // "a11" 
+0

我認爲這種技術的問題是,瀏覽器仍然緩存imagea導致什麼基本上是客戶端內存泄漏。而且,我仍然很好奇爲什麼所有的瀏覽器似乎忽略了http頭文件? – ckg 2011-02-13 22:50:28