即使缓存,新图像也会发出http请求?
我有一个javascript幻灯片显示,动态创建下一张幻灯片,然后将其移动到视图中。由于图像实际上是精灵,src是transparent.png,实际图像通过background:url(
..在css中映射。即使缓存,新图像也会发出http请求?
脚本创建了一个new Element
,每次(当然,大部分时间),Firefox会为transparent.png发出http请求。我有一个遥远未来的头文件,Firefox会尊重所有其他文件的期限。
有没有办法避免这些不必要的请求。即使服务器返回304 unmodified
响应,如果Firefox会尊重动态创建的图像上的到期日期,那将会很好。
我怀疑如果我注入了简单的字符串,而不是使用new Element
,这可能会解决这个问题,但是我用的原型一些方法扩展Element
对象,所以我想避免在我的js文件一串HTML字符串。
这是一个挑剔的问题,但我现在正在进行前端优化,所以我想我会解决它。
谢谢。
@TJ Crowder这里有两张图片:http://tinypic.com/r/29kon45/5。第一个显示trans.png的请求正在增加。第二个显示了标题的一个例子。谢谢
@all只是重申:真正奇怪的是,尽管所有图像都是通过相同的逻辑创建的,但它只会让这些不必要的请求花费大约一半的时间。
我知道这并不能解释为什么Firefox会忽略你的缓存时间,但你总是可以绕过这个问题而不使用幻灯片的图片标签。如果您将幻灯片放置为div标签,并将该精灵作为背景应用,则Firefox无需再提出任何请求。
编辑:
据当时this site的解释,Firefox是不会忽略你的缓存时间。如果图片已过期,那么浏览器应该再次请求图片。如果时间没有过期,在这种情况下发生,那么浏览器应该发出一个条件GET请求。我认为你不能摆脱它。
我认为Firefox只发出请求的一半时间,因为它刚刚在前一个请求中收到图像的“304未修改”状态,并且希望在后续请求发生时足够信任该请求。
当图像实际上被下载时,您会引用您用于图像的URL(如果您喜欢,请忽略服务器名称)和服务器发送的标头?也许有一个过期头文件或什么的问题。 – 2010-05-13 05:44:05
我上传了一张 – joshs 2010-05-13 14:59:07
以上的图片您是否将内联样式用于背景? – 2010-05-13 15:13:03