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
(请参阅here和here),所以我想知道为什么你不会&#39 ; t跳过该步骤并将其与其余脚本连接并从那里进行优化?
谷歌分析与我相信的一样,所以只要适用于两者,答案并不需要特定于Piwik。
答案 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
该片段的后半部分提供了加载的逻辑 跟踪代码与页面上的其他脚本并行。它执行 一个动态创建元素的匿名函数 使用适当的协议设置源。 因此,大多数浏览器 将跟踪代码与其他脚本并行加载 页面,从而减少了网页加载时间。