【问题标题】:Is there a reason to put google analytics in head and not in body?是否有理由将谷歌分析放在头脑中而不是身体中?
【发布时间】:2011-04-11 07:07:03
【问题描述】:

是否有理由将谷歌分析放在头部而不是放在身体的末尾? (我在大型网站上工作,它以这种方式工作)

选项 1:

<head>
<script src="http://www.google-analytics.com/ga.js"></script>
</head>

选项 2 - 在正文底部:

<body>
//html code

<script src="http://www.google-analytics.com/ga.js"></script>
</body>

编辑1: jquery ui

也是同样的问题

编辑2: 在脚本末尾添加 ga.js(修复)

谢谢

【问题讨论】:

  • 见[谷歌分析代码:可以放在文档前面吗? ](stackoverflow.com/questions/1708771) 和 [ 谷歌分析是否对下载静态网页的时间产生重大影响? ](stackoverflow.com/questions/374084)。最重要的是,Google 建议将其放在正文的末尾,这样它就不会阻塞您页面的其余部分。不过放在头上也没关系。此外,GA 现在有异步版本(请参阅 this question),它可以让您更早地放置 GA 代码并让它在现代浏览器中并行加载。

标签: javascript jquery-ui google-analytics


【解决方案1】:

以您描述的方式嵌入 ga.js 代码(使用硬编码的&lt;script&gt; 标签)确实是阻塞的,如果您这样加载脚本,则认为最佳做法是在 @ 之前的位置加载它987654324@ 标签。但如果您使用新的异步代码,则不建议这样做。 Google explicitly recommends placing the new asynchronous code in the &lt;head&gt;.

新的异步代码在两个方面是非阻塞的。首先,它将页面的变量排队到全局 _gaq 变量中。这样,无论哪种方式都可以准备数据。

然后,正如SO answer 中所述,直接使用 javascript 写出脚本,因为在新的异步代码中是非阻塞的(这种直接注入方法是实现异步的方法,即使在不支持'不要直接观察async 属性)。如果由于某种原因 Google 的服务器出现故障或响应缓慢,则站点的其余部分可以继续加载。这只是在用户没有缓存 ga.js 的情况下,因为 ga.js 被用于很多很多流行的网站。

所有这些的好处是 ga.js 加载得越早,并且能够将 _gaq 对象传输到 Google,您就越有可能捕获所有潜在数据,例如用户的数据在您的页面上快速单击。这对于“大型”网站尤其重要,因为这些网站往往拥有大量遵循快速点击习惯的普通用户。

如果您对此持怀疑态度,请使用网页加载检查器(如 webkit 开发人员工具)对其进行测试。我已经对其进行了广泛的测试,并没有发现在使用&lt;/head&gt; 中描述的异步代码时存在明显阻塞的证据。

【讨论】:

    【解决方案2】:

    我建议使用异步谷歌分析代码。

    Asynchronous Google Analytics

    如果您使用非异步代码并将其放入 head 部分,如果 ga 代码加载缓慢,它可能会阻塞您的网站的加载,因为它会等待脚本加载。而且由于 google 分析是一个外部脚本,因此您可能对负载性能没有影响(通常这无关紧要,但即使是 google 也可能出现服务器问题)。

    所以,不,我看不出这样做的真正理由。

    【讨论】:

    • 1.所以我必须在这种情况下输入:google-analytics.com/ga.jsinhead? 2. 浏览器如何知道处理 asyn=true?谢谢
    • 它的用法和文章一样
    • 您好,async=true 是一个 HTML5 属性。在加载 javascript 时不阻止网站的技巧是由于脚本标签的动态创建。
    • 这只是未来的补充。看看这个链接,这解释了异步 javascript friendlybit.com/js/lazy-loading-asyncronous-javascript
    【解决方案3】:

    没有充分的理由。 Google 自己建议将标签放在正文的底部,以避免过早加载并减慢页面加载速度。

    这可能是因为有人习惯将&lt;script&gt;标签放在标题中。

    【讨论】:

    • 不,body里面除了ui+jquery以外的其他ls
    • 这不再是真的。使用新的异步代码时,Google 建议将其放在 &lt;/head&gt; 的底部,就在开始 &lt;body&gt; 标记之前。
    【解决方案4】:

    出于性能原因,建议将此类脚本放在 html 中尽可能低的位置。需要加载的脚本会中断浏览器中的其他下载。我建议你看看这篇文章:Best Practices for Speeding Up Your Web Site

    【讨论】:

    • 我知道,因为我回答了。该网站由良好的出口建立,所以知道这篇文章。Soo 应该是他们放在标题中的一些原因,因为大多数 js 在正文中。
    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多