我有一个网页,需要定期更新基于
在几种情况下。现在,我正在使用此:
<html>
<head>
<meta http-equiv="refresh" content="3">
</head>
<body>
<img src="${createLink(controller:'advertisment',action:'viewImage',id:advertismentInstance.id)}"/>
</body>
</html>
def viewImage = {
log.info("before view Image")
def adv = Advertisment.get(params.id)
byte[] image = adv.fileContent
response.outputStream << image
log.info("after view Image")
}
def showAdv =
{
log.info("showAdv start")
def deviceInstance = Device.get(params.id)
int totalNumberOfAdv = deviceInstance.advertisment.size();
Random rand = new Random()
int advToShow = rand.nextInt(totalNumberOfAdv+1) - 1;
def advertismentInstance = deviceInstance.advertisment.toArray()[advToShow]
if(advertismentInstance)
{
render(view: "image", model: [deviceInstance :deviceInstance,advertismentInstance: advertismentInstance])
}
else
{
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'advertisment.label', default: 'Advertisment'), params.id])}"
}
log.info("showAdv end")
}
最佳答案
<img/>
一个ID:<img id="foo" src="..."/><!-- keep the existing src -->
<meta/>
。 </body>
标记之前,添加以下内容:<script>
var img = document.getElementById('foo'); // id of image
setInterval(function() {
var stamp = new Date().getTime();
img.setAttribute('src', img.getAttribute('src') + '?_=' + stamp);
}, 3000);
</script>
viewImage
操作以在渲染图像之前实际进行随机化。这可能意味着将showAdv
的一部分合并为viewImage
。 https://stackoverflow.com/questions/7560652/