網誌分頁

強制重新載入圖片

昨天在寫程式的時候遇到一個問題,那時候是寫一個程式是用CFIMAGE縮小及旋轉圖片,流程如下

  1. 使用者載入頁面,程式會依照圖片的大小是否過大顯示"縮小照片"的按鈕,以及旁邊是旋轉照片的按鈕
  2. 使用者按了縮小照片的按鈕,按鈕指向同一頁面,但多了一個網址控制變數,伺服器程式會依據控制變數進行照片縮小動作
  3. 當伺服器程式完成縮小動作,重新讓使用者載入頁面,把網指控制變數給清掉
  4. 這時候使用者應該可以看的到更改過後的圖片了。

但是因為瀏覽器會留存圖片資料(CACHE)進入暫時網際網路檔案夾(Temp. Internet Files) 所以使用者看到的是未更改過的圖片。

試了很多方法,用JavaScript的window.location 或是location.reload以及
<cfheader name="Expires" value="#now()#" charset="utf-8">也沒辦法更新圖片!
我之後使了JavaScript DOM的絕招才行,照片才會重新載入頁面。

1
2
3
4
<img id="myimage" src="" />
<script language="javascript">
   document.getElementById('myimage').src='myimage.gif?ts='+new Date().getTime();
</script>

在圖片後面加了個網指控制變數,new Date().getTime()是個時間的數字變數,所以一秒之差這個變數都會變成不一樣,而因此讓瀏覽器誤認為這個圖片是沒有下載過的,必須要重新下載。

No related posts.

1 comment to 強制重新載入圖片

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>