0

当我的 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>
4

2 回答 2

0

这真的不是一个好问题。它对您的服务器、计算机、操作系统、浏览器和互联网连接过于具体,无法作为一个具有一般答案的问题。但这是我的结果:

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

在我运行的测试中,G+ 和 Adob​​e 图标加载缓慢。我想你可以把 Adob​​e 图标放在你的本地服务器上。除此之外,您对 HelloBar 和 G+ 的调用可能会很慢,因此请考虑在某种延迟后添加这些链接(使用 jQuery 或类似方法)。

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

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

于 2012-04-11T21:35:47.640 回答
0

尝试删除 Hello Bar 部分,看看它是否改变了一些东西。如果是这样,则链接文件中的脚本速度非常慢,或者脚本所在的服务器速度非常慢。而且由于脚本加载和执行是阻塞的,它可能是冻结的根源。

在这种情况下,您可以尝试在 script 标签上使用 defer 或 async 属性,但随后您需要重写

new HelloBar(39040,52484);

作为

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

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

于 2012-04-16T16:40:11.840 回答