我不应该使用boomerang:
这样做<script type="text/javascript">
if (Math.random() < 0.005) {//one time in 200
document.write(
'<scr' + 'ipt src="/scripts/boomerang.js" type="text/javascript"></scr' + 'ipt>' +
'<scr' + 'ipt type="text/javascript">BOOMR.init({'+
'user_ip: "'+ '<%= Request.UserHostAddress %>' +'",'+
'site_domain: "' + '<%= //TODO from config%>' + '",' +
'beacon_url: "/Handlers/Boomerang.ashx",'+
'BW: {base_url: "/Resources/images/Boomerang/"}'
+'});</scr' + 'ipt>'
);
}
else if (Math.random() < 0.1) {//one time in ten
document.write(
'<scr' + 'ipt src="/scripts/boomerang.js" type="text/javascript"></scr' + 'ipt>' +
'<scr' + 'ipt type="text/javascript">BOOMR.init({'+
'user_ip: "'+ '<%= Request.UserHostAddress %>' +'",'+
'site_domain: "' + '<%= //TODO from config%>' + '",' +
'beacon_url: "/Handlers/Boomerang.ashx",'+
'BW : { enabled : false }'+
'});</scr' + 'ipt>'
);
}
</script>
这会使返回的时间无效吗?
我们并不太关心使用多页方法获取结果:我们满足于仅接收来自时间api的结果。
答案 0 :(得分:2)
为什么不在所有页面上都包含回旋镖,只根据您的采样率修改对init的调用?像这样:
<script src="/scripts/boomerang.js"></script>
<script>
var rand=Math.random(), test="";
if(rand < 0.05) { // one time in 200
test="BW";
}
else if(rand < 0.1) { // 19 times in 200
test="NOBW";
}
if(test) {
BOOMR.addVar({
test: test
}).init({
user_ip: "<%= Request.UserHostAddress %>",
site_domain: "<%= //TODO from config%>",
beacon_url: "/Handlers/Boomerang.ashx",
BW: {
base_url: (test == "BW" ? "/Resources/images/Boomerang/" : ""),
enabled: (test == "NOBW" ? false : true)
}
});
}
</script>
此脚本与您的版本之间的主要区别是添加了addVar({ test: test })
,它告诉您的信标收集器使用了哪个版本。如果它有助于调试,您可能还想传递rand
的值。
我已经测量了从单个linode盒为全球数百万用户加载回旋镖所花费的时间,中间加载时间为68毫秒(我们将浏览器缓存了7天的脚本)。我们也异步加载脚本,所以如果你发现boomerang本身会影响页面加载时间,你可能需要考虑这个问题。
答案 1 :(得分:0)
为什么不在@bluesmoon询问最好的随机化方法是什么......确定他不会咬人; - )