使用响应HTTP重定向的URL预加载/缓存映像

时间:2018-05-03 16:11:40

标签: javascript browser-cache http-redirect preload

我想让浏览器预加载/缓存图片,以便加载更快。通常这样做如下:

var URL = "http://example.com/image.jpg";
var image = new Image();
image.src = URL;

但在我的情况下,URL会响应HTTP重定向,大致如下所示:

$ curl -i "http://example.com/image.jpg"
HTTP/2 302
content-type: text/html; charset=utf-8
location: http://example.com/resolved.jpg
content-length: 0

这可能是预加载/缓存不起作用的原因吗? (我使用已解析的URL代替原始URL成功测试了我的代码,并且预加载/缓存工作正常。)

1 个答案:

答案 0 :(得分:0)

这里接受的答案是错误的。后续的内容响应是可缓存的(如果使用适当的标头提供),但最初的302响应绝对不是。而且你的大部分性能成本都是往返于srrver的往返延迟。虽然你可以返回301,但我会强烈建议不要这样做。使用301是非常非常的权利。正确的解决方案是在第一次请求时做出200响应。