如何在 Flex 中加载缓存的预加载图像

发布于 2024-10-31 00:14:47 字数 412 浏览 0 评论 0原文

在我的应用程序中,我使用 Loader 实例进行多次调用以将图像预加载到后台浏览器缓存,并忽略完整事件。我不将结果存储在应用程序中,而是希望将它们存储在浏览器缓存中。图像的过期标题日期很长。

当我想使用特定图像时,我再次使用 Loader 实例并调用相同的 url 并侦听完整事件以将文件加载到图像。

问题是,当我重新请求“缓存”图像的 url 时,它正在发出响应 200 状态的 http 请求,我认为这意味着它正在访问服务器。

如何确保对缓存图像的请求永远不会到达 Flex 的服务器?

一般来说,我发现对缓存图像(带有长过期标头)的 url 的任何请求都会向服务器发出另一个请求,或者至少这是我在 Firebug 中对它的解释。

有什么想法如何做到这一点?或者我误解了 Firebug 告诉我的内容?

谢谢。

In my application, I make numerous calls to preload images to brower cache in the background using Loader instances and ignore the complete event. I don't store the results in the application, but rather want to store them in the browser cache. The images have long Expires header dates.

When I want to use a particular image(s), I again use a Loader instance and call the same url and listen for the complete event to load the file to an Image.

The problem is that when I re-request the url for the "cached" image, it is making an http request with response 200 status, which I presume means it is hitting the server.

How do I make sure that a request for a cached image never hits the server from Flex?

In general, I am finding that any request to a url for a cached image (with a long expires header) is making another request to the server, or at least that is my interpretation of it in Firebug.

Any ideas how to do this? Or am I misinterpreting what Firebug is telling me?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小ぇ时光︴ 2024-11-07 00:14:47

所以,是的,我误解了萤火虫。事实证明,firebug 记录了 url 请求,它看起来像一个正常的请求。但是,如果您使用 wireshark 等网络监视器来监视网络,您会注意到有没有传出数据包到缓存图像的 url。 Flex 会加载缓存的图像。

为了保证图像缓存的安全,我添加了以下 Cache-Control 标头(尽管我认为过期就足够了。发布此内容时已经一年了)。

Cache-Control: max-age=31536000, Must-revalidate

Expires: Thu, 01 Dec 2011 16:00:00 GMT

因此,如果您正确设置缓存标头(请注意,如果日期不是过期标头中的有效日期,它不起作用),当您调用缓存图像的 url 时,flex 将从缓存中加载。

So, yes I was misinterpreting firebug. It turns out that firebug logs the url request and it looks like a normal request. However, if you monitor the network with a network monitor like wireshark you will notice that there are no outgoing packets to the url for the cached images. Flex does load the cached images.

Just to be safe on the image caching, I added a the following Cache-Control header (though I think the expires is enough. One year out at the time of posting this).

Cache-Control: max-age=31536000, must-revalidate

Expires: Thu, 01 Dec 2011 16:00:00 GMT

So, if you set cache headers correctly (note that if the date is not a valid date in the expires header, it does not work), flex will load from cache when you call the url to a cached image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文