[英]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來做到這一點,但由於出現錯誤,您的代碼無法正常工作。 使用+
代替.
連接字符串。
img1.src="sun.png?time=".new Date().getTime(); //wrong
img1.src="sun.png?time=" + new Date().getTime(); //ok!
請注意,因為僅在所有內容(包括圖像)均已加載時才執行onload
。 這意味着您將在打開頁面時獲得緩存的版本(但一段時間后將加載非緩存的版本)。
還有其他方法,例如將無緩存標頭設置為HTTP響應,但是我想這不是這個問題的重點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.