Re: [請益] PHP圖形顯示問題

看板Programming作者 (小豬仔)時間17年前 (2007/06/18 20:37), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串10/10 (看更多)
※ 引述《MrMarcus (請勿忘記密碼)》之銘言: : ※ 引述《ogson (小豬仔)》之銘言: : : 再請教一下各位 : : 目前我先寫好四個檔案如下(依執行順序排序) : : h1.html:產生表格讓使用者輸入資料 : : p1.php:藉由輸入的資料用Gnuplot畫圖並儲存,header到h2.html : : h2.html:再由src=p2.php 讀取圖檔並顯示 : : p2.php:讀取儲存的圖形 : : 以這樣的流程,我是以輸入資料,然後得到圖,再回上一頁,再輸入資料 : : 得到圖,如此反覆做簡單測試,在firefox上執行沒什麼問題,但是到了IE : : 卻出現了問題,在第一次啟動IE並執行時,圖形有出來沒問題,但當我回 : : 到上一頁,再輸入資料執行得到的圖形卻是最一開始(第一次啟動IE產生 : : 的圖)的圖形,如果按REFRESH才會將最新產生的圖讀進來,想請問一下,會 : : 有這樣的問題,是因為IE本身有各buffer儲存你第一次執行的網頁(h2.html) : : 當你要再一次讀取,IE並不會再發出request,而會直接去buffer找(但是並沒 : : 有更新的動作),所以每次都得到一樣的網頁內容,反之,firefox則會做更新的 : : 動作,所以我得到的結果都是最新的,這部分還請高手幫忙解答一下。 : : 如果是這樣的話,那我是在程式內寫入refresh的動作嗎?或是各位有更好的解決 : : 辦法? : 另一個方式是像其他網友提的,送防止快取的header給瀏覽器。 : 但是這個header要注意,不是放在你的h2.html裡面,而是要在 : 你送出圖片的p2.php裡面。換句話說,在你的p2.php裡面,要 : 送出圖片資料之前,加上這兩行: : header("Cache-Control: no-cache, must-revalidate"); : header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 隨便給個過去的時間 這各方法也是行不通...囧rz,我還有去網路上找一些header的用法,也依照 指示在沒有任何輸出前就加上(header no-cache...等),出來的結果還是一樣,我 在想會不會是因為我用gnuplot(我用C寫一個外部程式去CALL的)產出的圖並沒有到 cache,所以IE讀檔的時候就直接去Temporary Internet Files資料夾抓,結果因為 我每次產生的圖檔檔名都相同,所以都沒有更新。 我目前想到的方法是,讓每次的檔名都不一樣,這樣應該就能確保每次的圖檔都是 最新的,但是這樣的缺點是Temporary Internet Files資料夾的大小可能會隨使用 者的使用次數而不斷增加。 不曉得大家有沒有更好的解決辦法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.225.22.196

06/18 21:28, , 1F
有沒有試過調整p2.html為非快取?
06/18 21:28, 1F

06/19 05:09, , 2F
說錯了,是h2.html設非快取
06/19 05:09, 2F
文章代碼(AID): #16Tdnvk4 (Programming)
討論串 (同標題文章)
文章代碼(AID): #16Tdnvk4 (Programming)