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

Why is the piwik tracking script not usually directly included on the page?

本文关键字:包含 常不直 piwik 跟踪 脚本 为什么      更新时间:2023-09-26

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(基本上是此脚本(。 piwik.js记录一些内容(屏幕尺寸、IP 等(,并在 GET 请求中将其发送到您的 piwik 安装,以注册页面浏览。

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

可以在 cdn 上托管piwik.js(请参阅此处和此处(,所以我想知道为什么您不跳过该步骤并将其与其他脚本连接并从那里进行优化?


我相信谷歌分析做了同样的事情,所以答案不需要特定于Piwik,只要它适用于两者。

这是

为了防止 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

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