这是加载谷歌分析和jQuery的最佳方式吗

Is this the best way to load google-analytics and jQuery

本文关键字:jQuery 最佳 方式吗 加载 谷歌      更新时间:2023-09-26

我不需要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>

我不能百分之百肯定这是最有效的方法。有人能告诉我我做事情的方式是否是最好的吗。

感谢

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字节)更快。

至于jQuery,我个人不喜欢将其包含在谷歌分析片段中,而是喜欢HTML5 Boilerplate方法,即链接到谷歌的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>

"最佳"是主观的,但对这个主题感兴趣的是这里的一篇文章。

这个家伙使用google.load<script>导入的一般方式来加载jQuery。

就维护和性能而言,我个人总是找到常规的方法来满足需求。

您的代码存在问题

1.如果谷歌的CDN失败,你就无法备份本地文件。

2.GA脚本通常最好放在页面的底部,而加载jQuery最好放在顶部,因为从该页面派生的所有页面都将被迫将其与jQuery相关的脚本放在主页面上jQuery的相对方向下方才能工作。