2011-02-24 65 views
11

在什么情况下浏览器缓存文件?有时它确实,有时并非如此。如果这里没有人知道,我的下一步将是测试各种文件格式,文件大小和htaccess场景。在什么情况下浏览器缓存<video>文件?

如果您不知道,您是否可以考虑推荐测试的其他变量?

在此先感谢!

回答

15

以下工作,以指示浏览器缓存中的文件。最后一行是使服务器以正确的标头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 
5

HTML5规范并不严格要求浏览器必须对缓存视频文件做什么 - 它只是表明什么是“合理的”,因此理论上不同的浏览器可能会有不同的行为。

Web开发人员可以尝试使用<audio><video>元素这样的preload属性来控制视频缓存:

preload=none用户可能无法观看视频(即最好不要预装)

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

preload=auto用户很可能会观看视频(例如,可能是一个好的ID ea预加载并缓存视频)

正如我所说的,规范不强制执行此操作,以便浏览器可以忽略预加载值(如果他们选择的话)。例如,如果浏览器检测到连接速度缓慢或不稳定,因此拒绝预加载,但我不知道目前有这样做的浏览器。在装载属性

的更多信息是在这里:http://www.w3.org/TR/html5/video.html#attr-media-preload

+1

感谢您的详细和深思熟虑的回复。虽然我可能在我的问题上不清楚。当我说缓存时,我指的是如果用户返回页面,则不需要再次下载视频文件。有时,但并非总是如此。像“它可以在FFX中使用ogg,但在chrome中无处可用”这样的回答会有帮助,就像“如果将此行放入您的htaccess文件中,它会随处可见”。谢谢! – Matrym 2011-02-25 02:53:29

+0

啊,我的误解。在那种情况下,我并不确定,也不知道除了通过反复试验外,哪里可以找到答案。对不起 - 可能不是你所希望的答案。 – tagawa 2011-02-25 07:27:54

相关问题