2012-08-29 31 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