2010-10-01 80 views
3

YouTube让YouTube视频在缓存中发挥作用时取得了相当的成绩。但是,这导致我的ajax网站出现问题,并想知道是否有办法禁用正在缓存的YouTube视频。特别是在Internet Explorer中。禁用缓存YouTube视频

我无法禁用整个页面的缓存,因为我需要缓存来处理图像和其他内容,以提高速度。

任何人都知道任何解决方案?

+0

它引起什么样的问题? – 2010-12-03 23:38:11

+0

当我们每次重新加载页面需要更长的时间才能开始播放视频。有时候它不会播放,并且YouTube上的错误表明视频不可用。如果我清除缓存,它会再次加载正常。 – UpHelix 2010-12-03 23:39:58

回答

4

只要确保每次用户从一个唯一的URL下载。您的播放器代码包含如下内容:

http://www.youtube.com/v/sMiUpl_6jI0?fs=1&hl=en_GB 

这是YouTube播放器的网址。所有你需要做的就是在最后添加新的随机生成的令牌一样(例如PHP):

http://www.youtube.com/v/sMiUpl_6jI0?fs=1&amp;hl=en_GB&amp;noCachePlease=<?php echo uniqid() ?> 

每次访问该网址将包含一个独特的标记,因此浏览器将不使用任何缓存的页面机制。

+0

好主意,我正在用IE缓存的ajax页面来做这件事。不知道为什么我没有想到在这里使用它。用JS轻松完成。 youtubeUrl + ='&noCache ='+ Math.random();我会测试一下。 – UpHelix 2010-12-06 20:28:58

+0

经过测试,看起来不起作用。它可能在某个时间有效,但我可以理解为什么YouTube会“修复”这个,以免它们浪费带宽。 – gavaletz 2011-09-26 17:54:16

0

这meta标签可以帮助:

<meta http-equiv="Expires" content="0"> 

<meta http-equiv="Pragma" content="no-cache"> 

我相信,第二个是你在找什么。看看它,肯定有人有一个很好的教程。

我记得,除非用户自己做,否则不可能将其清除。

欢呼声

+2

不幸的是,HTTP标头不会影响Flash视频缓存行为,我的意思是,尝试在HTML页面中放置一个简单的SWF文件,并且无论您在该页面中设置了什么HTTP标头,都可以看到它始终被缓存。您建议的内容适用于正常的网页内容,例如图像但不包含Flash文件。 – 2010-12-04 03:27:57