4

我正在动态切换背景图像。自然,它们需要预先加载才能及时显示。我正在预加载它们,能够在加载图像时跟随 FireBug。当背景图像切换时,我在 FireBug 中再次看到图像下载。

这是我的网址:http ://www.morganpackard.com/siteRoot/

奇怪的是,如果我重新加载页面,一切都会按预期进行。我正在采取的步骤如下:

1) 清除 FireFox 缓存 2) 重新加载页面 图片加载缓慢,而且,显然既没有被预加载也没有被缓存。每次进行图像交换时,图像都会再次下载。3)现在重新加载页面,无需清除缓存图像立即加载和交换,一切都按预期工作。

所以看起来我必须在 FireFox 从缓存中读取图像之前重新加载。这很古怪。有任何想法吗?

注意:我的图像是巨大的。当然,我会压缩它们,但要先对这些预加载进行排序。

4

2 回答 2

4

我没有阅读您的代码,但是要使预加载工作,您必须将图像添加到文档 DOM,否则可能会被垃圾收集。

于 2009-12-12T13:21:31.573 回答
2

使用 HttpFox 检查,在初始加载后,我没有看到更多的 http 请求 - 当点击时 - 为您的背景图像。如果我点击“刷新”,则重新加载图像。我认为这是正确的,也是您所期望的。但是请注意,在页面刷新时重新加载页面及其资产(如图像、css 等)取决于响应标头和浏览器/插件工具中指定的任何覆盖。看一下 pragma:no-cache 和W3C Cache-Control(第 14.9 节)

编辑:打开萤火虫,当我点击时看到重新加载。这大概是 Firebug 的人工制品。关闭萤火虫,你不会有重新加载。

于 2009-12-12T13:10:58.947 回答