2011-06-20 49 views
-2

我不需要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%确定这是最有效的方法。请有人告诉我,如果我以最好的方式做事。

谢谢

+0

最有效的方面是什么?什么最好的方法?性能?可用性?您至少会让依赖jQuery的网站在其加载完成之前不能正确显示。 – Niklas

+0

“最佳途径”太主观了。具体来说,你想实现什么? – Scottie

+0

你好。对不起,如果我的问题不是很清楚。我确实提到我不需要jQuery在页面加载时可用。我在寻找的是一个尽可能快的页面。 jQuery在使用时通常需要在页面加载后超过10秒钟。 – UCC

回答

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> 

优化的代码minifies到247字节和executes faster比原来的(440字节)。

至于jQuery的,而不是把它放置在谷歌Analytics(分析)代码段,我个人链接到谷歌的CDN,然后包括本地后备以防万一它不是可用的HTML5样板方法的粉丝。

<!-- 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> 
+0

+1找到这个;但我个人会对这样的微观优化保持谨慎,我会敦促人们在阅读Mathias之前阅读整篇博客文章。 –

+0

这是一个很好的脚本,但它也删除了一些功能,如检查协议和使用适当版本的GA。 – Niklas

+0

公平点。最初的问题太开放了,无法确切知道提问者试图以“最好的方式”完成什么。如果他试图做的是尽可能限制文件大小,这可能是“最好”的方式。 – Scottie

0

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

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

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

0

的问题是看你的代码

1.如果谷歌的CDN失败,你有没有备用的本地文件。

2.GA脚本通常最好在页面的底部,而加载jQuery的效果更好,因为从这个页面派生的所有页面都将被迫将他们的jQuery相关脚本放在master页面上jQuery相对方向的下方上班。