Flash加载两次解决方法?

时间:2009-02-01 01:02:27

标签: flash swfobject

在调查报告的网站加载缓慢的问题时,我遇到了一个问题,我注意到(通过firebug)我的Flash文件加载了两次。

经过一番调查后,我将其跟踪到firefox bug并结合使用SWFObject 2.0。

现在,我在帖子中注意到有人提到您可以通过以下方式解决问题:

  

仅供参考,如果您是网页开发人员,那么可以通过简单的方法来获取您的网页   使用FF3是为了延迟访问任何插件,直到你的页面有   完全读取。一种简单的方法是安排插件脚本代码   使用带有超时的window.setTimeout在所有挂起的浏览器事件之后运行   为零。

老实说,我不知道他们在说什么,我希望有人可以给我一个可行的代码示例。

您知道如何使这项工作以及代码看起来像什么?任何帮助都会非常感激!

3 个答案:

答案 0 :(得分:3)

<script>
  function loadswf()
  {
     swfobject.registerObject("myobj", "9.0.0");
  }
  function init() 
  {
     window.setTimeout("loadswf()", 0);
  }
</script>
<body onload="init()">

 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="778" height="198" id="myobj">
    <param name="movie" value="style.swf">
    <param NAME=FlashVars VALUE="url={{stylelist}}">
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="style.swf" width="778" height="198">
     <param name="flashvars" value="url={{stylelist}}">
    <!--<![endif]-->

    <a href="http://www.adobe.com/go/getflashplayer">
    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                    </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
 </object>             

答案 1 :(得分:1)

确保在响应中设置缓存和过期标头。我在对象标签中遇到了类似的问题,并在服务器上调用了两次。将Expires标头设置为当前时间后5秒阻止第二次调用。 HTH

答案 2 :(得分:0)

这也可能是由于配置不正确CDN引起的,他们可能没有发送完整内容或抛出206或其他http错误。