我有一个Grails应用程序(2.0 RC1),它使用由图像组成的时钟来显示包括秒的时间。时钟是一个简单的JavaScript函数,可以获取时间,然后更新图像源以显示正确的图像。整个应用程序和它的时钟工作正常。
我试图解决的问题是,每次时钟更新(即每秒一次)图像源时,http get请求都会发送到服务器而不是使用缓存的图像。
当页面加载到Image()对象时,会预先缓存图像。然后,该函数计算时间并更新图像,如下所示:
document.getElementById('hour1').src = eval('window.' + 'num' + hour1 + '.src')
其中“num”+ hour1是要显示的Image()对象的名称。 gsp中的元素是img标记。
我花了几个小时寻找答案,但无济于事......我是否必须使用“缓存资源”插件来获取任何缓存?如果是这样,在这种情况下有人可以告诉我如何使用它吗?我玩弄了但是还没能让它工作......
答案 0 :(得分:1)
首先,不要那样使用eval()
。将此eval()
替换为:
window["num" + hour1].src
其次,您的浏览器将发送GET请求,服务器应响应304 - Not Modified,这将导致浏览器使用缓存的图像。您的浏览器是为每个请求提供图像,还是发送304状态代码?