如何阻止浏览器缓存视频?

时间:2016-12-14 22:19:10

标签: javascript php html5 google-chrome caching

我正在为学校开发一个网站。这是一个带推车的在线商店。其中一项要求是上传,删除和显示视频,每个产品一个。我决定使用视频类型的输入。

每个产品都有一个视频,所有管理员都可以正确上传,删除和查看视频。 问题是当我删除一个并上传另一个视频时,第一个视频停留在缓存中并显示而不是第二个。即使我刷新或清理浏览器的缓存,它也会保持这种状态。

我绝对相信视频不一样(已经检查过),但我可以说,浏览器可能认为它们是因为他们的文件具有相同的名称。我决定根据产品的ID存储视频文件,因为每个产品只有一个视频,这简化了事情。

因此,当我上传第二个视频时,它与第一个视频的名称相同。那是问题吗?我该如何防止这种情况发生?

3 个答案:

答案 0 :(得分:1)

问题可能在于服务器缓存或谁知道什么(我之前遇到过闪存播放器的问题),但你可以通过简单地在名称的末尾添加ie unixtimestamp(time())来避免这种情况。你的视频 - 或者好,是xy产品的ID。

要实现这一目标,我们需要您实际的PHP上传功能,该功能可存储,复制您在此处粘贴的服务器副本的视频文件,以添加"重命名"作为代码的一部分。

答案 1 :(得分:1)

  

问题在于,当我删除一个并上传另一个视频时,第一个视频停留在缓存中并显示而不是第二个。

更换视频时应指定新文件名。上传视频时,生成并存储随机文件名(或者文件内容的MD5 / SHA1哈希值),而不是覆盖相同的文件位置。

或者,存储视频更改的日期/时间,并将其作为查询字符串参数添加到视频的URL上,例如video.mp4?time=1481754713,浏览器将其视为用于缓存目的的单独URL。

答案 2 :(得分:1)

我在单页应用程序上找到了解决此问题的方法。您需要将视频标签动态更改为相同的视频标签,然后浏览器将播放适当的视频。 我已经用斯维尔特做到了。 I have to identical video tags I toggle the next variable from true to false as I change to the next video

相关问题