时长梯度统计

1.场景

阅读时长、用户停留页面时长等场景

2.问题
  • 频率太快会导致服务端压力变大,频率太慢又导致数据误差变大
  • 用户进入页面时间太短可能还没向服务端发出增加时长的请求
3.js代码(先引入jquery)
   		/*
            逻辑:前10秒每2秒更新一次时长,10到120秒之间每5秒更新一次时长,大于等于120秒每10秒更新时长
         */
        $(function () {
            //停留时长
            var stop_time_total = 0;
            //时间间隔(初始值,单位为毫秒)
            var seconds = 2000;
            //用于判断是否出错
            var has_error = true;
            var viewId = 123;
            var url = '服务端地址';
            //初始化一个定时器
            var timer = setInterval(sum_time, seconds);

            function sum_time() {
                $.post(url, {
                    id: viewId,
                    //由于seconds是毫秒,所以除以1000转换为秒
                    seconds: seconds / 1000
                }, function (msg) {
                    //如果出错,根据业务需求处理
                    if (msg == 'error') {
                        clearInterval(timer);
                        has_error = false;
                    }
                });
                //梯度统计
                stop_time_total += seconds / 1000;
                //10s~120s之间(包括10s)
                if (stop_time_total >= 10 && stop_time_total < 120) {
                    //如果不出错且时间间隔不等于5000毫秒
                    if (has_error && seconds != 5000) {
                        //修改时间间隔
                        seconds = 5000;
                        //清除定时器
                        clearInterval(timer);
                        //重新设置一个定时器
                        timer = setInterval(sum_time, seconds);
                    }
                //大于等于120s
                } else if (stop_time_total >= 120) {
                    //如果不出错且时间间隔不等于10000毫秒
                    if (has_error && seconds != 10000) {
                        //修改时间间隔
                        seconds = 10000;
                        //清除定时器
                        clearInterval(timer);
                        //重新设置一个定时器
                        timer = setInterval(sum_time, seconds);
                    }
                }
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值