2009-05-15 69 views
0

我正在使用自定義php腳本和GD庫根據POST中的某些默認值和參數呈現自定義圖像。渲染的PNG不工作的AJAX負載

我想構建一個自定義窗體,以允許用戶選擇這些參數,然後發送一個AJAX請求來渲染圖像並將其發回並在頁面中加載預覽。

問題是,第一次預覽的作品,但之後,我無法加載任何更多的預覽。我只是繼續在預覽窗口中看到相同的圖像。但是,我正在將映像寫入磁盤並且正在更新,所以我將其映像爲一些apache或瀏覽器緩存。下面是一些代碼:

AJAX請求就像

preview = new Image; 
preview.src = url; 
$(preview).load(preview.src, imagedata, function() {            
    $('#gaga-preview-space').html(this);                
}); 

其中圖象 - 是的bgcolor一個陣列等我也產生對每個請求的時間戳,在希望它會從cachine的停止Apache響應。這在其他情況下有效,但不是這個。

的PHP生成腳本的樣子:

// Save file 
$file = "/var/www/tribegaga/sites/all/files/gaga_customization/test.png"; 
$result = imagepng($image, $file); 

// Spit out file 
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: no-cache"); 
header("Content-Type: image/png"); 
imagepng($image); 

imagedestroy($image); 

你會看到我送一些頭,但這些都不是問題,無論是。

也許我在錯誤的道路上認爲它是緩存。但正如我所說,生成的.png工作正常。

更新:好的問題是,瀏覽器不POST來獲取圖像,GETS,所以現在我的腳本發送一個GET字符串,它的一切都非常奇妙。但我寧願沒有圖像src = http://site/script.php?string=params&test=foo

如果你們都有任何suggstions我會很感激。

謝謝!

回答

2

您也可以嘗試設置Expires(過去的日期)和Last-Modified(到當前的日期/時間)標題。