有没有一个很好的理由让我不能使用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>这会使返回的计时失效吗?
我们不太关心使用多页方法获得结果:我们满足于只从timing api接收结果。
发布于 2012-04-24 23:29:08
为什么不在所有页面上包含回飞棒,并且只根据您的采样率修改对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机器为全球数百万用户加载回飞棒所需的时间,中位数加载时间为68ms (我们的脚本被浏览器缓存了7天)。我们也异步加载脚本,所以如果您发现回旋棒本身会影响页面加载时间,那么您可能需要考虑这一点。
发布于 2012-04-24 21:59:03
你为什么不在@bluesmoon上问一下随机化的最好方法是什么…他肯定不会咬人;-)
https://stackoverflow.com/questions/10299330
复制相似问题