我有一个问题的加载时间/大小的sifr 3启用的网站,并发现字体swf被要求在我的应用程序几次。这可以在firebug的network选项卡中看到,也可以在apache日志中看到。
在http://novemberborn.net/flash/prefetching-movies上有一些用于预取的指令。然而,这不起作用,预取方法不可用(仍在文档中!)。我知道预取是自动完成的,但是这似乎不起作用。
即使在sifr下载包的演示页面中,使用空的浏览器缓存,我也能找到几个rockwell.swf和cochin.swf!无论是Firefox3还是IE7...
有没有简单快速的解决方法?
你好,西蒙
发布于 2009-04-18 20:15:28
从根本上说,这是浏览器和Flash播放器之间的问题。当sIFR将Flash影片插入页面时,浏览器会使用Flash影片的路径初始化Flash插件。如果电影还不在本地缓存中,则从服务器请求它。由于电影是在几毫秒内插入的,这意味着将对每个插入的电影发出一个请求。
sIFR试图通过预取Flash电影来防止这种情况。它根据会话cookie对每个浏览器会话执行此操作。这仅仅触发了对电影文件的请求,并且希望在替换开始时该文件已经在缓存中。因此,尽可能早地加载sIFR JavaScript代码,并通过将sIFR电影传递给sIFR.activate()方法来正确激活Flash是很重要的。
根据我的经验,可靠地测试此过程的唯一方法是清除浏览器缓存,关闭所有浏览器实例(以去除会话cookie),然后打开浏览器并直接转到您想要测试的页面。我不认为浏览器中的活动监视器是可靠的,所以要么通过HTTP代理检查,要么检查服务器日志。
我可以做的一个剩余的改进是尝试检测预取的进度,并推迟替换元素,直到预取完成。
发布于 2009-10-09 06:03:42
你有搬到Cufon的选择吗?你会发现它使用起来容易多了,而且也不奇怪。
https://stackoverflow.com/questions/759398
复制相似问题