7

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

经过一番调查,我将其归结为一个firefox 错误以及 SWFObject 2.0 的使用。

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

仅供参考,如果您是网页开发人员,那么让您的页面与 FF3 一起使用的简单解决方法是延迟访问任何插件,直到您的页面完全加载之后。一个简单的方法是使用 window.setTimeout 安排你的插件脚本代码在所有待处理的浏览器事件之后运行,超时为零。

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

您是否知道使这项工作正常进行的方法以及代码的外观?任何帮助将不胜感激!

4

3 回答 3

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>             
于 2009-02-01T01:15:30.600 回答
1

确保您在响应中设置了 Cache 和 Expires 标头。我在对象标签中遇到了类似的问题,两次调用服务器。将 Expires 标头设置为在当前时间之后 5 秒会阻止第二次调用。高温高压

于 2009-11-03T20:33:11.730 回答
0

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

于 2010-08-25T16:31:21.270 回答