我有一个javascript幻灯片,动态创建下一张幻灯片,然后将其移动到视图中。由于图像实际上是精灵,src是transparent.png,实际图像是通过background:url(
..在css中映射的。
每次(好吧,大部分时间)脚本都会创建new Element
,Firefox会为transparent.png发出http请求。我有一个远期的expires标题,Firefox尊重所有其他文件的到期日。
有没有办法避免这些不必要的请求。即使服务器正在返回304 unmodified
响应,如果Firefox会尊重动态创建的图像的到期日,那将是很好的。
我怀疑如果我注入一个简单的字符串而不是使用new Element
,这可能会解决问题,但我在Prototypes扩展Element
对象上使用了一些方法,所以我想避免一堆我的js文件中的html字符串。
这是一个挑剔的问题,但我现在正在进行前端优化,所以我想我会解决它。
感谢。
@TJ Crowder这是两张图片:http://tinypic.com/r/29kon45/5。第一个表明trans.png的请求正在激增。第二个显示了标题的示例。感谢
@all只是重申一下:真正奇怪的是,即使所有图像都是通过相同的逻辑创建的,它只会在一半的时间内完成这些不必要的请求。
答案 0 :(得分:2)
我知道这并不能解决为什么Firefox会忽略你的缓存时间,但你总是可以绕过这个问题,而不是使用幻灯片的图片标签。如果您将幻灯片设置为空div标签并仅将精灵应用为背景,则Firefox将不再需要进行任何请求。
修改强>:
根据this site的解释,Firefox并没有忽略你的缓存时间。如果图像已过期,则浏览器应该再次请求图像。如果时间尚未到期(在这种情况下发生),那么浏览器应该发出条件GET请求。我认为你不能摆脱它。
我认为Firefox只会在一半的时间内发出请求,因为它只是在之前的请求中收到了图像的“304 Not Modified”状态,并且如果它们发生得足够快,则希望相信后续请求。
答案 1 :(得分:0)