2

我是否有充分的理由不应该对回旋镖执行此操作:

<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 接收结果。

4

2 回答 2

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 })哪个告诉您的信标收集器使用了哪个版本。您可能还想传递randif 它有助于调试的值。

我测量了从单个 linode 盒子为全球数百万用户加载回旋镖所需的时间,平均加载时间为 68 毫秒(我们将脚本缓存了 7 天)。不过,我们也会异步加载脚本,因此如果您发现回旋镖本身会影响页面加载时间,您可能需要考虑这一点。

于 2012-04-24T15:29:08.427 回答
0

你为什么不在@bluesmoon上问一下随机化它的最佳方法是什么……肯定他不会咬人的 ;-)

于 2012-04-24T13:59:03.363 回答