我遇到了启用sifr 3的网站的加载时间/大小问题,并发现在我的应用程序中多次请求了字体swf。这可以在firebug的网络选项卡以及apache日志中看到。
在http://novemberborn.net/flash/prefetching-movies上有一些预取说明。但是,这不起作用,预取方法不可用(仍在文档中!)。我知道预取是自动完成的,但这似乎不起作用。
即使在sifr下载包的演示页面中,有一个空的浏览器缓存,我也会获得rockwell.swf和cochin.swf的几个点击!两者都有Firefox 3和IE7 ......
有机会轻松快速解决问题吗?
问候, 西蒙
答案 0 :(得分:0)
从根本上说,这是浏览器和Flash播放器之间的问题。当sIFR将Flash影片插入页面时,浏览器会使用Flash影片的路径初始化Flash插件。如果影片尚未在本地缓存中,则从服务器请求它。由于电影是在几毫秒内插入的,这意味着每个插入的电影都会发出请求。
sIFR尝试通过预取Flash电影来防止这种情况发生。它基于会话cookie在每个浏览器会话中执行此操作。这仅仅触发了对电影文件的请求,并且希望在替换开始时该文件位于缓存中。因此,尽早加载sIFR JavaScript代码并通过将Flash影片传递给sIFR.activate()
方法来正确激活sIFR非常重要。
根据我的经验,可靠地测试此过程的唯一方法是清除浏览器缓存,关闭所有浏览器实例(以摆脱会话cookie),然后打开浏览器并直接进入要测试的页面。我发现浏览器中的活动监视器不可靠,因此要么检查HTTP代理还是服务器日志。
我可以做的另一项改进是尝试检测预取的进度,并推迟替换元素直到预取完成。
答案 1 :(得分:0)
你可以选择搬到Cufon吗?你会发现它更容易使用而且不古怪。