我不需要在页面加载时立即使用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%肯定这是最有效的方式。如果我以最好的方式做事,请有人告诉我。
由于
答案 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相对方向下面工作