关于我正在做的事情:
- 我正在做一个可以搜索视频的网站。
- 我展示了一些内容行,每行都嵌入了一个迷你剪辑,显示了一个视频。
我使用jQuery.AJAX来检索这些视频,因此无需重新加载页面。
一切正常。我展示了视频,并且可以从这些行中播放它们。
对于页面的管理员,我有一个按钮,可以覆盖这些视频。这样就会把新视频放到原先的位置上,替换掉旧的视频。我在服务器端用
PHP
编写以下代码实现:
unlink($destination_path.$video_name.".mov");
move_uploaded_file($_FILES['newVideo']['tmp_name'], $destination_path.$video_name.".mov");
然后我使用 header("Location: index.php");
跳转到主页面。
问题:
当我在网站中播放新视频时,我看到的是旧视频而不是新视频。
我用 F5 清除缓存:无效
我用 Ctrl+F5 清除缓存:无效
我在页面顶部设置了以下内容:
无效
- 我关闭浏览器并重新打开(或者打开一个新的):有效
一些额外信息:
视频的
preload
属性设置为none
。所以我没有缓存地检索我的视频。它们在我按下播放按钮时开始加载。文件被很好地覆盖,并且我也检查了我指向的位置(与之前相同的位置和文件)。
如果我去视频的位置,新的视频在那里,旧的已经消失了。
所有浏览器都发生了这种情况。
看起来浏览器中有一些缓存问题,或者我的服务器非常不理睬我。还有其他清空缓存的方法吗?或者这里发生了什么事情?
preload
属性被设置为none
。因此,我检索我的视频时没有缓存。” - 预加载与缓存关系不大;它只决定浏览器是否应自动开始加载视频数据,或仅在用户开始播放时才加载。但是,当然,无论preload
设置为什么,浏览器都可以从其缓存中获取视频数据。 - CBroe