1

刷新图像时遇到一些麻烦,我有一个在后台运行的脚本更新图像,我想每 X 秒显示一次新图像,但是当我在浏览器中运行时,图像没有刷新
有人有任何想法吗?

<!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 控制台在检索图像时没有显示任何错误,但它没有刷新?
[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]

感谢任何帮助,谢谢!

4

1 回答 1

0

浏览器正在显示浏览器缓存中的图像。

一种解决方法是使用唯一的请求参数(例如时间戳)来请求图像,从而迫使浏览器实际发送新的 HTTP 请求,而不是显示来自浏览器缓存的图像。

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

请注意,这个具体问题与 servlet 无关。更重要的是,将 HTML 代码直接放在 servlet 类中是一种糟糕的做法。HTML 代码属于 JSP 文件(而 Java 代码属于 servlet 类)。

于 2012-09-04T11:36:44.243 回答