刷新JSP/避免缓存中的图像
Refresh Image in JSP/ Avoiding cache
我正在做一个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>
通过点击按钮,相同的jsp页面将再次加载。我正在使用上面的代码,但我仍然只在下一页加载时获得缓存的(旧)图像。我哪里错了。
请帮忙。
感谢
由于您使用的是JSP,因此可以使用System.currentTimeMillis()
附加当前时间。
替换此:
<img src="sun.png" id="text">
这个:
<img src="sun.png?time=<%=System.currentTimeMillis()%>" id="text">
我不建议您避免总是缓存它。您可以附加当前版本号(或上次更改的版本号),而不是附加当前时间,这样用户每次打开此页面时就不必再次下载。
您也可以使用javascript来实现这一点,但您的javascript不起作用,因为它出现了错误。使用+
而不是.
来连接字符串。
img1.src="sun.png?time=".new Date().getTime(); //wrong
img1.src="sun.png?time=" + new Date().getTime(); //ok!
请注意,因为onload
只有在加载了所有内容(包括图像)后才会执行。这意味着您将在打开页面时获得缓存版本(但非缓存版本将在一段时间后加载)。
还有其他方法,比如不为HTTP响应设置缓存头,但我想这不是问题的重点。
相关文章:
- 如何缓存AJAX请求的图像
- 阻止浏览器缓存上载的图像
- ajax缓存false无法加载图像
- 从 PHP 脚本预缓存第二个图像
- 使用 javascript 时的图像缓存
- 使用脚本缓存图像
- 预加载图像和缓存图像之间有区别吗
- 上载图像的新版本并避免缓存
- 将图像保存到用户的pc缓存中,并使用asp.net从缓存中使用它
- 如何防止裁剪时浏览器图像缓存
- 如何在javascript中加载图像而不将其放入缓存中
- 图像加载,IE中的另一个错误 - 相当确定这不是缓存错误
- 在 iPad 上使用 JS 进行图像缓存
- 打破浏览器中的图像缓存
- 通过添加时间戳清除图像缓存
- 如何通过php脚本加载图像缓存
- 在高分辨率图像缓存后淡出
- 禁用图像缓存
- 我如何获得图像数据或在chrome或firefox网页上的图像缓存的路径
- 浏览器图像缓存和jQuery.load()问题