18

我知道,只需将脚本添加到 html 文档的正文标记的末尾,Google 分析就可以对其进行处理。我的问题是,这可能会对性能(下载时间和服务器负载)产生很大影响吗?让我们假设 IIS 服务的静态页面为 100k。谢谢。

4

15 回答 15

22

我的网站的外观或性能会受到谷歌分析的影响吗?

您对 Google Analytics 的使用不会影响您网站的外观——我们不会在您的网页上放置任何图像或文字。同样,您的网页性能不会受到影响,但添加跟踪代码后的第一个页面加载可能除外。第一次综合浏览会调用 Google 服务器上的 JavaScript,这可能需要比常规页面加载稍长的时间。 后续浏览量将使用缓存数据,不会受到影响

需要注意的是,互联网上的许多网站在 Google 服务器上的同一位置使用相同的 Javascript,因此很少有新用户在没有本地缓存​​该文件的情况下访问您的网站。

于 2008-12-17T09:44:05.327 回答
7

是的,它确实对性能有影响,请参阅http://dotnetperls.com/Content/Google-Analytics-Speed.aspx 。为了加快速度,建议您在本地下载 ga.js 文件并改为调用它,此处解释为http://www.askapache.com/javascript/google-analytics-speed-tips.html

于 2008-12-17T10:38:13.283 回答
7

编辑:谷歌发布了Asynchronous Tracking。我还没有尝试过,但我想它解决了下面列出的问题。

我认为谷歌分析可以让网站变慢,因为它确实很高兴 ga.js 需要很长时间才能加载,这可能会导致一些问题:

  • 如果您有一个触发的 JavaScript window.onload(包括旧式<body onload="">语法),那么在网页下载完成之前它不会触发。不过,使用类似jQuery 的 ready 事件可能会解决这个问题。

  • 大多数浏览器在网页完全加载之前不会填写保存的用户名和密码。

  • 普通用户不容易发现网页只是在等待分析脚本加载,因此即使页面基本上已经完成下载,他们也可能正在等待小下载动画完成。

  • 您可以按照 niallbrowne 的建议下载 ga.js 并从您自己的 Web 服务器提供服务。但这应该是最后的手段,因为 ga.js 是跨网站缓存的,并且每周只会过期一次。

于 2008-12-18T00:01:03.163 回答
6

是的。

我觉得浏览速度要好得多,因为我将谷歌分析添加到 addblock 过滤器。

于 2008-12-17T09:40:46.473 回答
5

不。

如果你把它放在最后,它将最后加载,所以即使谷歌的服务器有点慢,你的访问者也不会注意到。

ga.js 是 9.58k,日志调用大约是 1.2k。js 将在第一次加载后被缓存(我猜甚至跨站点?)所以它的大小真的可以忽略不计。

于 2008-12-17T09:40:51.310 回答
2

即使您将 Analytics 代码放在代码的底部,从用户的角度来看,直到底部的小蓝条消失后,网站才会加载。

这意味着您的网站会“感觉”更慢,这取决于(令人惊讶的)您的用户连接有多迟钝。对于拨号用户和从国外访问您的网站的用户(请求滞后是一个更高的问题),额外的请求肯定意味着网站的响应速度稍差。

但是,鉴于每张图片、每一个 javascript 文件和任何其他嵌入对象都是一个额外的请求,如果您已经在使用丰富的网站布局,那么没有理由不使用分析。

于 2008-12-17T10:00:47.133 回答
1

GA 在慢速连接上肯定会减慢用户的体验。

于 2008-12-17T10:33:27.973 回答
1

请记住,并非每个用户都有快速的美国连接。

如果您从美国以外的国家/地区连接速度较慢,则差异肯定是显而易见的。

运行速度较慢的计算机或非标准浏览器(即旧版本、手机等)的人都可能受到 javascript 执行时间的影响。

于 2009-03-23T02:23:50.823 回答
1

有时我会在使用它的页面中遇到滞后。我可以将问题跟踪到 GA,因为它是唯一等待加载的脚本。我知道这不应该发生,但是对于某些页面请求,它会随机发生。这通常并不重要,因为整个页面已经加载,因此您可以开始阅读。但是对于使用 ajax 或通常在文档就绪事件上执行操作的页面来说,这会成为一个小问题。所以我将它添加到我的 adlock 过滤器中。

于 2009-03-23T02:43:24.723 回答
1

看看竞争对手怎么说

于 2009-03-24T16:06:56.063 回答
0

就我个人而言,我真的看不出会有很大的不同,您的浏览器会在第一次请求后缓存它,然后在其他页面上使用它。

该脚本也在页面的最底部加载,因此其他所有内容都应该已经加载。

于 2008-12-17T09:43:01.413 回答
0

关于服务器负载,脚本是从 Google 的服务器中提取的,而不是您的,因此不会对服务器端产生明显的影响。显然,您的页面都将比没有加载 JavaScript 的代码时稍大一些,但您永远不会注意到其中的差异。

于 2008-12-17T09:52:31.347 回答
0

还要注意,我看到 GA 下载了一个带有哈希的小 GIF 文件......但我怀疑它的大小会对性能产生很大影响。

于 2009-03-23T02:32:29.663 回答
0

如果您将代码添加到页面底部,那么它可能不会有太大的不同。

但是,如果您希望它没有任何区别,那么我会看看这个链接:

http://lyncd.com/2009/03/better-google-analytics-javascript/

它描述了 Steve Souders 为完全避免任何类型的 I/O 阻塞而采取的方法。

于 2009-04-22T15:20:32.670 回答
0

尽管下载和运行实际的 ga.js 速度很快,但我在整个欧洲注意到,在不同的连接/计算机/操作系统/浏览器上,最后一个字节之间存在主要滞后(从 0 到 30(三十)秒) HTTP 请求和 HTTP 响应的第一个字节。

这是可以理解的,因为 GA 非常受欢迎,但这是在 window.onload 触发之前发生的。因此,如果您的页面依赖于 JS 并且您的用户遇到了这种滞后,他们不会分析哪个组件负责 - 他们会假设您的网站非常慢。

解决方法是注册一个 window.onload 函数,该函数将添加 GA 脚本。示例(window.onload=function()为简单起见使用“”):

window.onload = function() {
    var gaJsHost = (("https:" == document.location.protocol) 
                      ? "https://ssl." 
                      : "http://www.");
    var s = document.createElement('script');
    s.src = gaJsHost + "google-analytics.com/ga.js";
    s.type='text/javascript';
    var bodies = document.getElementsByTagName('body');
    if (bodies.length > 0) {
        bodies[0].appendChild(s);
    } else { // this should never happen, but sometimes does (curse you IE6!)
        document.appendChild(s);
    }

    // this says 100ms, but won't happen until ga.js is loaded
    window.setTimeout(function(){
        if (window['_gat']) {
            var pageTracker = _gat._getTracker("UA-xxxxxx-x");
            pageTracker._trackPageview();
        }
    },100);
}
于 2009-04-22T15:51:26.763 回答