这是加载google-analytics和jQuery的最佳方式吗?

时间:2011-06-20 08:31:36

标签: javascript jquery

我不需要在页面加载时立即使用jQuery:

到目前为止,我有以下内容:

<script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', '...']);
        _gaq.push(['_trackPageview']);
        (function () {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            var gb = document.createElement('script'); gb.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            gb.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
            var s = document.getElementsByTagName('script')[0]; 
            s.parentNode.insertBefore(ga, s);
            s.parentNode.insertBefore(gb, s); 
        })();
</script>

我不是100%肯定这是最有效的方式。如果我以最好的方式做事,请有人告诉我。

由于

3 个答案:

答案 0 :(得分:4)

Mathias Bynens撰写了一篇关于优化Google Analytics代码段的文章。这是“你想知道但却不敢问”版本的一切。

http://mathiasbynens.be/notes/async-analytics-snippet

TL; DR版他最终得到了这个:

<script>
  var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
  (function(d, t) {
    var g = d.createElement(t),
        s = d.getElementsByTagName(t)[0];
    g.async = g.src = '//www.google-analytics.com/ga.js';
    s.parentNode.insertBefore(g, s);
  }(document, 'script'));
</script>

缩小,你最终得到了这个:

<script>var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))</script>
  

优化代码缩小为247个字节,并且比原始代码(440个字节)缩小executes faster

对于jQuery而言,我不是将其包含在Google Analytics代码段中,而是个人粉丝,可以链接到Google的CDN,然后包含本地后备版,以防万一它无法使用。

  <!-- Grab Google CDN's jQuery. fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  <script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery.min.js"%3E%3C/script%3E'))</script>

答案 1 :(得分:0)

'最佳'是主观的,但对此主题感兴趣的是article found here

这家伙做了一些测试,使用google.load加载jQuery,以及<script>导入的一般方式。

在维护和性能方面,我个人总能找到足够的常规方法。

答案 2 :(得分:0)

您的代码可以看到问题

1.如果Google的CDN失败,您就无法回退本地文件。

2.GA脚本通常最好位于页面底部,而加载jQuery的效果更好,因为从该页面派生的所有页面都将被强制将其jQuery相关脚本放在母版页面的jQuery相对方向下面工作