2012-02-09 58 views
2

我有一個PHP文件,生成圖像(它把圖像上的水印)稱爲image.php接收和編號http://localhost/image.php?id=1預加載的PHP動態圖像

有沒有人知道使用javascript/jQuery預加載圖片的方法?

我試過圖像預加載的正常建議,但嘿似乎沒有工作。我在想它,因爲文件的名稱總是相同的。

更新:

我使用this方法來預載的圖片(創建IMG元素的簡單jQuery函數)

一個警告(可能是一個重要的,所以我應該說明它前面),我使用的圖像作爲背景通過CSS。

我看到圖像是在Firebug中獲取的。但是當我嘗試將其定義爲div的背景時,他們會再次獲取。我無法重用實際的元素,但我的瀏覽器緩存不應該再次抓取。再次

感謝

+0

你嘗試過什麼,「不似乎工作」的還不是一個非常有用的評估問題。 – 2012-02-09 19:56:47

+0

對不起,現在我讀了一個問題,我意識到有一些信息丟失。我會更新它。 – 2012-02-09 22:19:50

回答

2

這應該是與你的圖像發送正確的頭一樣簡單:

來源:http://www.php.net/manual/en/function.header.php#93377

// seconds, minutes, hours, days 
$expires = 60*60*24*14; 
header("Pragma: public"); 
header("Cache-Control: maxage=".$expires); 
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT'); 
-1

是否使用你的PHP文件作爲圖像src的URL任何見解?如果問題是由於名稱始終相同,則添加虛擬版本變量將會阻止緩存。簡單地追加到src

"&v=" + "(new Date()).getTime()" 

由於它需要使用Javascript,你只能在頁面加載後執行此操作。或者,如果頁面由某個後端PHP腳本呈現,則可以在提供頁面之前插入隨機版本號。

+0

我已經更新了這個問題。但我使用的圖像與CSS,我已經有一個區別變量,圖像ID。 – 2012-02-09 22:27:45

+1

他實際上**希望**緩存。問題在於緩存目前沒有發生。 – Brad 2012-02-09 22:32:07