1

我在 Firefox 和 Opera 中使用 HTML5 标签的缓存有问题。

我的页面有一个按钮,当它被点击时会在服务器中生成一个新视频(总是同名),当视频生成时,页面中会显示视频.../video。

问题是 Firefox 和 Opera 总是在页面中显示视频的第一个版本,如果我直接输入视频 URL,则显示最后一个版本(正确)。

我曾尝试使用“meta http-equiv="Cache-control" content="no-cache" " 删除缓存,但它没用。

在 Chrome 和 Safari 中它可以完美运行。

任何想法?

谢谢

4

1 回答 1

6

3个选项:

  1. 为 video-file发送适当的缓存控制标头。这将通过 htaccess 文件或 web.config 文件 (Apache / IIS) 完成。虽然本质上是一个很好的解决方案,但在某些浏览器中可能仍然会失败
  2. 像这样将时间码附加到路径:http://mydomain.com/mypath/myvideo.mp4?t=13591239123
  3. 始终为视频文件使用新名称 - 例如通过计算生成的视频并按顺序编号

选项 3 连同删除旧视频的 cronjob 可能是最好的 - 否则两个用户同时查看您的页面会覆盖彼此的视频。

选项 1 / 2 适用于单用户环境。

<video id='myvideo'>选项 2 将在完成生成新视频后重置元素的路径:

document.getElementById('myvideo').setAttribute("http://mydomain.com/mypath/myvideo.mp4?t="+(+new Date());

请注意,此解决方案仅处理一个源文件。要在所有浏览器中工作,您需要 mp4 和 webm(或 ogv)文件 --> 两个视频文件比较http://caniuse.com/webmhttp://caniuse.com/mpeg4

于 2012-05-23T08:06:55.353 回答