导致Flash介绍动画冻结的脚本

时间:2012-04-08 20:20:36

标签: javascript flash

当我的Flash网站加载时,它会在初始动画中途冻结2-3秒然后继续。这显然看起来不太好,我无法弄清楚是什么导致它。我认为它是index.html中的一个脚本,并尝试了各种方法来纠正它 - 我做错了什么?

<!DOCTYPE html>
<html lang="en">
<head>
<title>company name</title>
    .
    .
    .
<link href="style.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="js/flashobject.js"></script>

<!--[if lt IE 7]>
<link href="ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>

<body>
<header>
    <hgroup>
    <h1>company</h1>
    <h2>company</h2>
    </hgroup>
</header>

<div id="container">    
    <div id="head">
        <div class="aligncenter"><a href="http://www.adobe.com/go/EN_US-H-GET-FLASH">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_adobe_flash_player.png" alt="" /></a>
        </div>
    </div>                      
</div>
    <div class="g-plus" data-href="https://plus.google.com/100925740920754223119?rel=publisher" data-width="170" data-height="69" data-theme="light">   

</body>

<!-- Flash -->
<script type="text/javascript">
  var fo = new FlashObject("main_v10.swf", "head", "100%", "100%", "8", "");
  fo.addParam("quality", "high");
  fo.addParam("allowFullScreen", "true");
  fo.write("head");
</script>

<!-- Hello Bar -->
<script type="text/javascript" src="//www.hellobar.com/hellobar.js"></script>
<script type="text/javascript">
new HelloBar(39040,52484);
</script>

<!-- GPlus -->
<script type="text/javascript">
window.___gcfg = {lang: 'en'};
(function() 
{var po = document.createElement("script");
po.type = "text/javascript"; po.async = true;po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(po, s);
})();</script>

<!-- Google -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['_setSiteSpeedSampleRate', 10]);
_gaq.push(['_trackPageview']);
(function init() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +  '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga,s);
 })();
  window.onload = init;
 </script>
 </html>

2 个答案:

答案 0 :(得分:0)

这不是一个好问题。对于您的服务器,计算机,操作系统,浏览器和Internet连接来说,它太具体了,而不是一般答案的问题。但这是我的结果:

我在Windows上使用Firefox(最新版)。

在我跑的测试中,G +和Adobe图标正在慢慢加载。我认为你可以把Adobe图标放在你的本地服务器上。除此之外,您正在对HelloBar和G +进行一些潜在的慢速调用,因此请考虑在某种延迟之后添加这些链接(使用jQuery或类似的)。

此外,我在过去使用谷歌分析加载缓慢存在问题。这似乎也复制了HelloBar的一些功能,因此您可能希望更仔细地查看是否需要两个跟踪系统。

为了更准确地找到问题,您可以使用@jimw建议的内容,或者使用Firefox插件Firebug(使用“Net”选项卡的“All”按钮来获取加载时间的图片)。

答案 1 :(得分:0)

尝试删除Hello Bar部分以查看它是否发生了变化。 如果是这样,链接文件中的脚本要么非常慢,要么脚本所在的服务器速度非常慢。由于脚本加载和执行是阻塞的,它可能是冻结的来源。

在这种情况下,您可以在脚本标记上尝试使用defer或async属性,但之后需要重写

new HelloBar(39040,52484);

作为

function HelloBar( ) { window.setTimeout( function ( a, b ) { new HelloBar( a, b ); }, 100 ); }
new HelloBar(39040,52484);

这样,当你加载脚本时,HelloBar会被覆盖,“循环”停止,你的脚本会被调用正确的值。