【问题标题】:Google Analytics - Blocks HTML/page renderingGoogle Analytics - 阻止 HTML/页面呈现
【发布时间】:2010-10-28 16:01:48
【问题描述】:

我已使用“Better Google Analytics JavaScript that doesn’t block page downloading”动态加载 Google Analytics,这样它就不会阻塞 HTML/页面呈现。

但是,有时我的 HTML 页面会阻止呈现 Firefox 3.0 (WinXP) 状态消息状态:

从 www.google-analytics.com 传输数据

关于如何以不会阻止 HTML/页面渲染的方式加载 Google Analytics JavaScript 的任何想法?

【问题讨论】:

标签: javascript html rendering google-analytics blocking


【解决方案1】:

您可以使用 Google Analytics [跟踪代码的异步加载][1]。以下 sn-p 应该会有所帮助:

<script type="text/javascript">

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXX-X']);
    _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>

【讨论】:

【解决方案2】:

像 Google 推荐的那样,将 Google Analytics 代码放在 &lt;/body&gt; 标记之前的最后一件事?

【讨论】:

  • 我有,如果您从 lyncd.com 文章代码中注意到,它会将 JS 动态加载到 head 元素中。
  • 好的。当您看到“正在从 www.google-analytics.com 传输数据”消息时,您页面上的任何内容实际上是否已被阻止呈现,或者除了该消息外,页面似乎已完成?
  • 当我看到该消息时,页面在呈现页面时出现明显的阻塞。我有 JS 将某些 DIV 显示从“无”变为“阻止”,但该代码不会出现,因为页面卡在“从 www.google-analytics.com 传输数据”上
  • 我明白了。好吧,您可以尝试安排在页面加载后稍微附加脚本,在较短的 setTimeout 上;这至少会让其他立即挂起的操作在等待 Analytics 之前运行。如果这不起作用或不可行,您可能不得不想出一种方法来使用 AJAX 提取分析脚本,这似乎有点挑战性。
【解决方案3】:

您可能会看到这个错误。在 3.6 之前,FF 有时会错误地指责 google 分析导致页面变慢...

https://bugzilla.mozilla.org/show_bug.cgi?id=487638

【讨论】:

    【解决方案4】:

    但它在底部(就在

    【解决方案5】:

    DEFER 属性可能对你有用

    <script DEFER type="text/javascript" src="http://www.google-analytics.com/ga.js">
    
    <script DEFER type="text/javascript">... tracker code ...</script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多