为什么piwik跟踪脚本通常不直接包含在页面上?

时间:2014-12-19 12:41:40

标签: javascript google-analytics analytics web-analytics matomo

Piwik(分析软件),通过在</body>之前加入一个小脚本来工作:

<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//piwik.example.com";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', 1]);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

然后,此脚本将在页面上的piwik安装中包含piwik.js(基本上为this script)。 piwik.js记录了一些内容(屏幕大小,IP等),并在GET请求中将其发送到您的piwik安装,以注册综合浏览量。

现在我不明白为什么你不会直接在你的页面上包含piwik.js。当你可以将它与其他脚本连接并缩小时,为什么还要从单独的位置获取它?

可以在cdn上托管piwik.js(请参阅herehere),所以我想知道为什么你不会&#39 ; t跳过该步骤并将其与其余脚本连接并从那里进行优化?


谷歌分析与我相信的一样,所以只要适用于两者,答案并不需要特定于Piwik。

1 个答案:

答案 0 :(得分:3)

这是为了防止piwik.js文件阻止页面的呈现。正如您所说,Google Analytics提供的代码段大致相同。史蒂夫·索德斯(Steve Souders)对http://www.stevesouders.com/blog/2009/12/01/google-analytics-goes-async/的许多好处进行了很好的撰写。

另见: http://googlecode.blogspot.nl/2009/12/google-analytics-launches-asynchronous.html

  

该片段的后半部分提供了加载的逻辑   跟踪代码与页面上的其他脚本并行。它执行   一个动态创建元素的匿名函数   使用适当的协议设置源。 因此,大多数浏览器   将跟踪代码与其他脚本并行加载   页面,从而减少了网页加载时间。