1

我的小组正在将以下内容添加到头部区域:

    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-xxx-1']);
        _gaq.push(['_trackPageview']);
        (function () {
            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);
        })();
    </script>

 </head>

当被问及这个问题时,他们说可以在那里,因为它不会同步运行。这是正确的还是应该将代码移到页脚?

4

1 回答 1

0

这是正确的,因为脚本正在加载asynchronously并且asynchronous加载不会保持/挂起页面加载过程,因此不会降低性能。

这是关于异步 Vs的答案。同步,这里有一篇关于加载 javascript的非常好的文章,其中包含更多技术和示例。

我认为这是一种更好的方法(一种不显眼的延迟加载模式)

(function() {
    function async_load(){
        // ...
    }
    if (window.attachEvent)
        window.attachEvent('onload', async_load);
    else
        window.addEventListener('load', async_load, false);
})();

但是当您像这样同步(经典)加载脚本时

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

将其保留在页脚中是个好主意,这样它就不会挂起页面加载。

您也可以async在脚本中使用以允许同步加载,但并非所有浏览器都支持。这是关于它的另一个答案。

于 2012-11-11T19:24:49.043 回答