在什么条件下浏览器会缓存<video>文件?

Mat*_*rym 11 video .htaccess html5 caching browser-cache

在什么条件下浏览器会缓存文件?有时确实如此,有时却没有.如果这里没有人知道,我的下一步将是测试各种文件格式,文件大小和htaccess场景.

如果你不知道,你能想到你建议测试的其他变量吗?

提前致谢!

Mat*_*rym 16

以下工作用于指示浏览器缓存文件.最后一行是使服务器提供具有正确头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
Run Code Online (Sandbox Code Playgroud)


tag*_*awa 5

HTML5规范并不严格关于浏览器必须对缓存视频文件做什么 - 它只是建议什么是"合理",所以理论上不同的浏览器可能有不同的行为.

Web开发人员可以尝试使用或元素preload上的属性控制视频缓存,如下所示:<audio><video>

preload=none 用户可能不会观看视频(即最好不要预加载)

preload=metadata 用户可能会观看视频(即更好地下载有关视频的信息(大小,持续时间等))

preload=auto 用户可能会观看视频(也许是预加载和缓存视频的好主意)

正如我所说,规范没有强制执行此操作,因此浏览器可以忽略预加载值(如果他们选择).一个例子可能是浏览器检测到缓慢或不稳定的连接,因此拒绝预加载,尽管我目前还不知道有任何浏览器这样做.

有关preload属性的更多信息,请访问:http://www.w3.org/TR/html5/video.html#attr-media-preload

  • 感谢您详细且经过深思熟虑的回复。不过,我的问题可能不清楚。当我说缓存时,我指的是如果用户返回页面,视频文件不需要再次下载。有时是这样,但并非总是如此。像“它在 FFX 中对 ogg 有用,但在 chrome 中没有任何地方”这样的答案会有所帮助,就像“如果你将此行放在 htaccess 文件中,它会到处都是”这样的答案。谢谢! (2认同)