什么情况下浏览器会缓存 <video> 文件?
Posted
技术标签:
【中文标题】什么情况下浏览器会缓存 <video> 文件?【英文标题】:Under what conditions will the browser cache <video> files? 【发布时间】:2011-07-03 22:34:16 【问题描述】:浏览器在什么情况下会缓存文件?有时会,有时不会。如果这里没有人知道,我下一步将测试各种文件格式、文件大小和 htaccess 场景。
如果您不知道,您能想出您推荐测试的任何其他变量吗?
提前致谢!
【问题讨论】:
【参考方案1】:以下工作指示浏览器缓存文件。最后一行是使服务器传送具有正确标头 MIME 类型的 webm 文件所必需的。
# Expires is set to a point we won't reach,
# Cache control will trigger first, 10 days after access
# 10 Days = 60s x 60m x 24hrs x 10days = 864,000
<FilesMatch "\.(webm|ogg|mp4)$">
Header set Expires "Mon, 27 Mar 2038 13:33:37 GMT"
Header set Cache-Control "max-age=864000"
</FilesMatch>
AddType video/webm .webm
【讨论】:
【参考方案2】:html5 规范对浏览器必须如何缓存视频文件并不严格 - 它只是建议什么是“合理的”,因此理论上不同的浏览器可能有不同的行为。
Web 开发人员可以尝试使用 <audio>
或 <video>
元素上的 preload
属性来控制视频缓存,如下所示:
preload=none
用户可能不会观看视频(即最好不要预加载)
preload=metadata
用户可能会观看视频(即最好只下载有关视频的信息(大小、持续时间等))
preload=auto
用户可能会观看视频(即,预加载和缓存视频可能是个好主意)
正如我所说,规范并未强制执行此操作,因此浏览器可以选择忽略预加载值。一个例子可能是,如果浏览器检测到连接缓慢或不稳定,因此拒绝预加载,尽管我不知道目前有任何浏览器这样做。
更多关于 preload 属性的信息在这里:http://www.w3.org/TR/html5/video.html#attr-media-preload
【讨论】:
感谢您提供详细而深思熟虑的回复。不过,我的问题可能不清楚。当我说缓存时,我指的是如果用户返回页面,则不需要再次下载视频文件。有时是这样,但并非总是如此。像“它适用于 FFX 中的 ogg,但在 chrome 中无处”这样的答案会有所帮助,就像“如果您将此行放在 htaccess 文件中,它将无处不在”之类的答案。谢谢! 啊,我的误会。在那种情况下,我不太确定,除了通过反复试验之外,我不知道在哪里可以找到。抱歉 - 可能不是您希望的答案。以上是关于什么情况下浏览器会缓存 <video> 文件?的主要内容,如果未能解决你的问题,请参考以下文章
chrome浏览器360浏览器图片无法加载提示等待可用套接字问题