2

当可以从缓存中加载内容时,Firebug 是否可能错误地将下载添加到“网络”选项卡?

我在 Javascript 库中有一些代码,用于在单击缩略图时延迟下载图像,然后在下载后显示它。它的目的是确定它是否已经被首先下载(通过一个带有布尔值的数组),如果它之前已经下载过,只需从缓存中显示。

我认为它可以正常工作一段时间(因为单击两次时它们会出现的速度),但我最近查看了 Firebug 的“网络”选项卡,它似乎每次都在下载大图像(总文件大小得到每次点击都会变大)。

我不确定我做错了什么,因为一些调试告诉我布尔值正在正确更新。

所以我的问题是,Firebug 是否不正确(我对此表示怀疑),或者有什么方法可以强制它从缓存中显示(我认为使用与 image.src 完全相同的图像路径可以做到这一点)

这是我第一次在 Javascript 中使用对象,所以我对我的代码不是 100% 有信心,所以请善待!

4

3 回答 3

6

firebug 中 net 选项卡中出现的图像并不意味着它是从服务器下载的。检查萤火虫报告的图像的 HTTP 响应代码 - 对我来说,一次访问后,它一直返回“304 - 未修改”,这意味着它正在从缓存中加载。

您可以通过为您想要硬缓存的组件发送遥远的未来标头来避免检查缓存是否仍然新鲜的额外 HTTP 请求。但请记住,为了强制客户端重新下载以这种方式缓存的组件,您必须更改文件名。

于 2008-12-09T08:45:40.690 回答
4

Firebug 可能不是 100% 正确的,或者至少,如果 Firebug 被关闭,那可能不会完全正确。

我会尝试使用 Fiddler 或 WireShark 来检查网络活动,看看它是否看起来有什么不同。Fiddler是 IE 的调试代理,WireShark是数据包嗅探器。

我不能确切地说 Firebug 网络监视器是如何工作的,因为我从来没有深入过引擎盖,但是我经历了一些我认为是我做的错误的事情,当 Firebug 关闭时这些事情就消失了。

似乎 Firebug 在测量事物的行为中,以一种“看着你的量子猫”的方式改变事物。Firebug 仍然很稳定,但它确实有一些限制。

于 2008-12-09T06:44:45.347 回答
1

我检查了您的网站并使用 CacheViewer 确认它确实在缓存它并从磁盘中获取它,从今天起一个月到期。如果您愿意,您也可以通过将所有图像组合成一个大图像并仅显示感兴趣的区域来使用拼接,尽管我通常对小图像使用拼接,例如分页图标等。无论如何,您的网站看起来很棒并且喜欢这种方式你延迟加载大图像。

于 2009-09-15T12:07:55.210 回答