再谈FlowPlayer在IE下的BUG一则。

FlowPlayer从3.1.3版本开始出现了一个BUG,由于默认开启了缓存,在IE下(IE6、7、8)第一次载入正常,第二次载入(例如刷新页面)会导致无法正常使用,显示一个黑屏以及一个旋转的圈圈。如下图:

只有退出浏览器后再打开浏览器,才不会使用缓存里的SWF文件。
这个BUG在Firefox、Chrome、Safari、Opera下均不存在。

这个BUG在官方论坛上有帖子讨论。目前有两种解决方案。
一个是按照官方博客里写的,使用cachebusting配置,在JavaScript里控制,具体请看这里。注意文中使用了jQuery库。
还有就是帖子中的使用Apache的配置,在返回的HTTP头里告诉IE不要缓存。
<FilesMatch ".(swf)$">
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
</FilesMatch>

个人推荐使用第一种方法,毕竟不是每个人都可以修改服务器配置,而且第一种方法只会干预IE的缓存机制以及FlowPlayer,对于网站中其它的SWF文件也没有干扰。毕竟缓存SWF文件可以节省服务器流量以及减少用户的加载时间。

类别:it疯言 查看评论
posted @ 2010-05-02 20:19  ayanamist  阅读(737)  评论(0编辑  收藏  举报