<video>标记Firefox和Opera中的HTML5缓存

Bor*_*rja 0 video firefox html5 opera caching

我在Firefox和Opera中使用HTML5标记时遇到问题.

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

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

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

在Chrome和Safari中它完美运行.

任何的想法?

谢谢

Jör*_*eld 5

3个选项:

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

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

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

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

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

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