Javascript 在JSP/cache中刷新图像
我正在从事一个web项目,在这个项目中,我必须生成图像,并在加载时将其显示在JSP页面上。现在的问题是,我必须使用相同的图像名称,因此浏览器总是使用缓存图像,而不是新图像 Display.jspJavascript 在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");
<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响应设置缓存头,但我想这不是问题的重点