后台看到按钮点击量是实际的两倍,用户投诉也确认只点了一次。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,组件重复挂载或事件在冒泡阶段被多层监听,同一次点击触发多条上报。

「埋点重复上报」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。别只看报错的最后一行,往上看几行,真正的起因通常在上面。

el.addEventListener('click', handler, { once: true });
# 上报带唯一 id
{ event: 'buy', uid: 123, ts: Date.now() }

同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

具体做法是,检查监听绑定位置;改为捕获一次后解绑;上报端按事件标识去重。

最后用这个标准收尾,点击量与真实操作一致,无重复记录。

作者 9823189