Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSP/cache中刷新图像_Javascript_Image_Jsp_Webpage - Fatal编程技术网

Javascript 在JSP/cache中刷新图像

Javascript 在JSP/cache中刷新图像,javascript,image,jsp,webpage,Javascript,Image,Jsp,Webpage,我正在从事一个web项目,在这个项目中,我必须生成图像,并在加载时将其显示在JSP页面上。现在的问题是,我必须使用相同的图像名称,因此浏览器总是使用缓存图像,而不是新图像 Display.jsp <html> <head> <script type="text/javascript"> updateImage(){ var img1 = document.getElementById("text");

我正在从事一个web项目,在这个项目中,我必须生成图像,并在加载时将其显示在JSP页面上。现在的问题是,我必须使用相同的图像名称,因此浏览器总是使用缓存图像,而不是新图像

Display.jsp

<html>
  <head>  
   <script type="text/javascript">
      updateImage(){
          var img1 = document.getElementById("text");
          img1.src="sun.png?time=".new Date().getTime();
      }   
   </script>
  </head> 
  <body onload="updateImage()">
          <form action="com.CheckName" method="get">
              <input type="button" value="submit" name="submit" /> 
              <img src="sun.png" id="text">
          </form>
  </body>
</html>

updateImage(){
var img1=document.getElementById(“文本”);
img1.src=“sun.png?time=“.new Date().getTime();
}   
通过单击按钮,可以再次加载相同的jsp页面。 我正在使用上面的代码,但仍然只有在下一页加载时才会得到缓存(旧)图像。我错在哪里

请帮忙


谢谢

因为您使用的是JSP,所以可以使用
System.currentTimeMillis()
附加当前时间

替换此项:

<img src="sun.png" id="text">

为此:

<img src="sun.png?time=<%=System.currentTimeMillis()%>" id="text">
“id=”text“>
我不建议您避免一直缓存它。您可以附加当前版本号(或上次更改的版本号),而不是附加当前时间,这样用户就不必每次打开此页面时都再次下载它


您也可以使用javascript来实现这一点,但由于出现错误,您的javascript无法工作。请使用
+
而不是
来连接字符串

img1.src=“sun.png?time=“.new Date().getTime();//错误

img1.src=“sun.png?time=“+new Date().getTime();//好的!

请注意,
onload
仅在加载所有内容(包括图像)时执行。这意味着您将在打开页面时获得缓存版本(但非缓存版本将在一段时间后加载)


还有其他方法,比如不为HTTP响应设置缓存头,但我想这不是问题的重点