【问题标题】:does Google analytics make a major effect on time to download a static web page?谷歌分析是否对下载静态网页的时间产生重大影响?
【发布时间】:2008-12-17 09:38:06
【问题描述】:

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

【问题讨论】:

标签: html performance static google-analytics


【解决方案1】:

Will my website's appearance or performance be affected by Google Analytics?

您网站的外观将 永远不会受到您使用的影响 谷歌分析 - 我们不放置任何 页面上的图像或文本。 同样,你的表现 页面不会受到影响,与 第一个可能的例外 添加后的页面加载 跟踪代码。这第一次综合浏览量 在 Google 上调用 JavaScript 服务器,这可能需要一点时间 比常规页面加载时间长。 后续浏览量将使用缓存数据,不会受到影响

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

【讨论】:

  • 感谢所有分享他们专业知识的人。我将使用这个答案,因为它简洁地回答了原始问题,但下面的许多答案都很有帮助。底线是谷歌分析必须对性能产生一些影响,但不会产生太多影响。对于我的项目,收益远大于成本。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

    • 一般用户不容易发现网页只是在等待 Analytics 脚本加载,因此即使页面已基本完成下载,他们也可能正在等待小下载动画完成.

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

    【讨论】:

      【解决方案4】:

      是的。

      我觉得浏览速度快了很多,因为我添加了谷歌分析到 addblock 过滤器。

      【讨论】:

      • Adblock plus、No Script 和 FlashBlocker 的组合让网页浏览速度更快。
      【解决方案5】:

      没有。

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

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

      【讨论】:

        【解决方案6】:

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

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

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

        【讨论】:

        • 我住在印度,我使用拨号。
        • 正如 Galwegian 所提到的,由于每个网站都需要来自相同位置的相同 JavaScript 文件,因此它肯定已经被缓存了。
        【解决方案7】:

        GA 在慢速连接上肯定会降低用户体验。

        【讨论】:

          【解决方案8】:

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

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

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

              【讨论】:

                【解决方案11】:

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

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

                【讨论】:

                • 我不明白为什么我在这里被标记了?我所说的一切都在上面得到了证实。
                • 您忘记了 javascript 的执行和对未缓存的 Google Analytics 的调用(我没有标记您,只有在您的答案完全错误时才会这样做。)
                • 非常真实,我看过每一页的实际调用,我仍然认为所涉及的时间是分钟。上面的一篇文章确实有一些关于分析速度以及如何优化它的非常好的链接。
                【解决方案12】:

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

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                    【解决方案14】:

                    如果您将代码添加到页面底部,那么它可能不会产生太大影响。

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

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

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

                    【讨论】:

                      【解决方案15】:

                      虽然下载和运行实际的 ga.js 速度很快,但我注意到在整个欧洲,在不同的连接/计算机/操作系统/浏览器上,主要滞后(从 0 到 30(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);
                      }
                      

                      【讨论】:

                        猜你喜欢
                        • 2011-02-10
                        • 1970-01-01
                        • 2020-07-07
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2011-06-27
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多