为什么 piwik 跟踪脚本通常不直接包含在页面上
Why is the piwik tracking script not usually directly included on the page?
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
代码段的后半部分提供了加载 与网页上的其他脚本并行跟踪代码。它执行 动态创建元素和 使用正确的协议设置源。因此,大多数浏览器 将跟踪代码与其他脚本并行加载 页面,从而减少网页加载时间。
相关文章:
- 货币代码为欧元-金额的格式不应包含小数
- 数据绑定:'系统Char'不包含名为'xxxxx'
- jsi18n-django.catogue没有'不包含任何已翻译的字符串(但是djangojs.mo包含)
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- ajax加载()后,包含图表的图像不会重新绘制
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- 猫鼬——如何找到物体所在的场&;name”;不包含数字
- 不执行包含的页面的Javascript onload函数
- 为什么不是't my元素:使用变量而不是字符串时包含(变量)功?jquery
- 我如何才能包含一个iframe视频,这样它就不会't负载
- php函数的XMLHttpRequest响应不包含任何数据
- 不能对包含同一类的所有元素使用.replacement()
- Javascript的行为与PHP包含文件不一致
- 谷歌地图API JS V3包含但不起作用
- 基于屏幕大小的动态包含文件不起作用
- 带有引导 3 手风琴的 AngularJS 在通过 ng-view 包含时不起作用.
- 当URL可能包含或不包含HTTP和WWW时,URL的JavaScript Regex
- 表构建使用$.AJAX只包含和不包含td
- 包含其他不自动更新字符串的字符串
- 剑道ui数据源“包含”过滤器不工作