2012-08-29 77 views
1

有一些麻煩,清爽的形象,我有一個腳本在後臺運行更新的形象,我想,以顯示新的圖像每X秒,但是當我在瀏覽器中運行圖像不刷新
任何人有什麼想法?
如何通過JavaScript刷新圖像在一個Java servlet

<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1\> 
     <title> Title </title> 

     <script> 
      var image; 
      var imgBase="images/test.jpeg" 
      function count(){ 
       image.src=imgBase; 
      } 

      function init(){ 
       image = document.getElementById("image"); 

       if(image){ 
        setInterval("count()",1000); 
       } 
      } 

      window.onload = init; 
     </script> 
    </head> 
    <body> 
     <img src="images/test.jpeg" id="image"> 
    </body> 
</html> 

web應用中具有下列目錄樹..

. 
├── Home.jsp 
├── images 
│   ├── test.jpeg 
├── META-INF 
│   └── MANIFEST.MF 
├── style.css 
└── WEB-INF 
    ├── classes 
    │   └── test 
    │    └── my 
    │     └── new 
    │      └── package 
    │       └── Test.class 
    ├── lib 
    └── web.xml 
    9 directories, 10 files 

Web控制檯不顯示圖像retriving任何錯誤,但它不會刷新?
[00:53:15.896] GET http://host:8085/Servlet/Display?config=L1 [HTTP/1.1 200 OK 2ms]
[00:53:16.419] GET http://host:8085/Servlet/images/test.jpeg [HTTP/1.1 200 OK 2ms]

感謝任何幫助,謝謝!

+1

您的服務器端代碼,也沒關係。您的瀏覽器正在嘗試爲該圖像加載什麼內容?您可以使用瀏覽器的內置工具,或者像Fiddler這樣的工具來弄清楚。 – Brad

+0

已使用FF的Web控制檯日誌更新。看起來它可以找到圖像,但沒有刷新每一秒 – bobbyrne01

+0

能否請你只發布所產生的HTML標記?它會更可讀 – Bergi

回答

0

該瀏覽器是顯示從瀏覽器高速緩存中的圖像。

一種解決方法是使用一個唯一的請求參數(例如,時間戳),使得瀏覽器被強制爲實際發送一個全新的HTTP請求,而不是示出從瀏覽器緩存的圖像的請求圖像。

function count(){ 
    image.src = imgBase + "?" + new Date().getTime(); 
} 

注意,這個具體問題無關使用Servlet。更重要的是,將HTML代碼直接放在一個servlet類中是一種不好的做法。 HTML代碼屬於JSP文件(以及servlet類中的Java代碼)。

+0

這對於從servlet中分離出HTML的工作和好處,將實現下一步..謝謝! – bobbyrne01

+0

不客氣。 – BalusC