我想让浏览器预加载/缓存图片,以便加载更快。通常这样做如下:
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成功测试了我的代码,并且预加载/缓存工作正常。)
答案 0 :(得分:0)
这里接受的答案是错误的。后续的内容响应是可缓存的(如果使用适当的标头提供),但最初的302响应绝对不是。而且你的大部分性能成本都是往返于srrver的往返延迟。虽然你可以返回301,但我会强烈建议不要这样做。使用301是非常非常的权利。正确的解决方案是在第一次请求时做出200响应。