【问题标题】:Under what conditions will the browser cache <video> files?什么情况下浏览器会缓存 <video> 文件?
【发布时间】:2011-07-03 22:34:16
【问题描述】:

浏览器在什么情况下会缓存文件?有时会,有时不会。如果这里没有人知道,我下一步将测试各种文件格式、文件大小和 htaccess 场景。

如果您不知道,您能想出您推荐测试的任何其他变量吗?

提前致谢!

【问题讨论】:

    标签: caching .htaccess html video browser-cache


    【解决方案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 开发人员可以尝试使用 &lt;audio&gt;&lt;video&gt; 元素上的 preload 属性来控制视频缓存,如下所示:

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

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

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

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

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

      【讨论】:

      • 感谢您提供详细而深思熟虑的回复。不过,我的问题可能不清楚。当我说缓存时,我指的是如果用户返回页面,则不需要再次下载视频文件。有时是这样,但并非总是如此。像“它适用于 FFX 中的 ogg,但在 chrome 中无处”这样的答案会有所帮助,就像“如果您将此行放在 htaccess 文件中,它将无处不在”之类的答案。谢谢!
      • 啊,我的误会。在那种情况下,我不太确定,除了通过反复试验之外,我不知道在哪里可以找到。抱歉 - 可能不是您希望的答案。
      猜你喜欢
      • 2014-01-09
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      相关资源
      最近更新 更多