适用于 H5,Hybird,PC端

埋点主要分前端(用户行为分析)、后端(业务数据统计)

前端埋点方式有几种,最准确,使用最高的是代码埋点,即在需要埋点的节点调用接口直接上传埋点数据,友盟、百度统计等第三方数据统计服务商大都采用这种方案;

其他可视化等方式需要开发系统去配合,上报数据不太准确,目前在摸索阶段。

最后在代码埋点的基础上,采用轻耦合的声明式埋点最适合目前项目。

总结了一下:

代码埋点:

优点:最常用,最准确,最广泛

缺点:侵入代码,业务逻辑,耦合太重

声明式埋点:

优点:不侵入代码,业务逻辑,自动获取页面路由变化,效率高

缺点:不能覆盖所有埋点需求

适用于:页面pv统计、事件统计(按钮点击、滑动等)不需要动态传值的地方

基于VueJS(H5、混合开发、M端、公众号)

技术方案:vue自定义事件及全局监听点击事件

// 在入口js中引入ubcMobile.js
import ubcMobile from './ubcMobile'// 根组件注入
new Vue({el: '#app',router,template: '<App/>',components: { App },directive: { ubcMobile }
})// 使用方法:在根DOM节点上填加属性,自定义事件v-ubc,
<template> <div id="app" v-ubc> <router-view ></router-view> </div>
</template>// DOM节点上填加点击事件属性ubc_event(声明式),例如以下:
<button v-on:click="inc" ubc_event='{"eventName":"图形验证码","eventId":"gd.zcy.txyzm"}'>按钮</button>
<button v-on:click="dec" ubc_event='{"eventName":"立即登录","eventId":"gd.zcy.ljdl"}'>按钮</button>
复制代码

基于AvalonJS(PC、Web端)

技术方案:avalon自定义事件及全局监听点击事件,大同小异

无痕埋点(声明式)(原创)相关推荐

  1. 美团点评前端无痕埋点实践

    构建一个数据平台,大体上包括数据采集.数据上报.数据存储.数据计算以及数据可视化展示等几个重要的环节.其中,数据采集与上报是整个流程中重要的一环,只有确保前端数据生产的全面.准确.及时,最终产生的数据 ...

  2. spring 事务原理_Spring声明式事务处理的实现原理,来自面试官的穷追拷问

    公众号[JavaQ]原创,专注分享Java基础原理分析.实战技术.微服务架构.分布式系统构建,诚邀点赞关注! 面试官:有如下代码场景,A类的a1方法没有标注@Transactional注解,a2方法标 ...

  3. 无痕埋点在Android中的实现

    无痕埋点在Android中的实现 目标 解决手动打点效率低下问题 自动化埋点 本篇技术实现主要是运行是代理,不涉及到插桩技术,不引入插件,对业务影响点最小 技术难点 1. 如何拦截到所有的view的点 ...

  4. Spring事务管理——使用XML配置声明式事务

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.事务介绍 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和 ...

  5. 【Spring】spring基于注解的声明式事务控制

    结构 domin package com.itheima.domain;import java.io.Serializable;public class Account implements Seri ...

  6. 【spring】spring基于xml的声明式事务控制

    结构 domain package com.itheima.domain;import java.io.Serializable;public class Account implements Ser ...

  7. pipeline和java的区别_总结:四个Pipeline脚本式与声明式语法差异

    如果您阅读此博客文章,则很有可能正在寻找有关脚本化和声明性管道之间的实际差异的信息,对吗?那你找不到更好的地方了.我将向您展示这两者之间的四个最实际的区别.和我待几分钟,享受旅程! 为什么要有两种管道 ...

  8. SpringCloud Feign声明式服务调用

    SpringCloud Feign声明式服务调用 1. 加入pom依赖 2. Application.java上声明@EnableFeignClients 3. @FeignClient声明接口调用服 ...

  9. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

  10. SpringBoot第七篇:springboot开启声明式事务

    springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事事务,引入它们依赖的时候,事物就 ...

最新文章

  1. 动态库的编写和调用 - Delphi
  2. EfficientNetv2测试
  3. myeclipse智能提示设置
  4. python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了
  5. 刚进职场的IT前端小白,如何规划自己的未来之路?有哪些发展方向?
  6. 9月22日云栖精选夜读:脑洞 | 横扫围棋界的AlphaGo竟然出纪录片了!介意剧透者慎点…...
  7. 数据平台建设的几种方案
  8. JQUERY-SELECT 实现下拉框可以搜索、选择
  9. 如何优化Java GC
  10. 更改虚拟机centos7的系统时间
  11. 软件测试师和网络工程师,【软件测试工程师(科技部)网络工程师面试题目|面试经验】-看准网...
  12. 霍尔电流传感器ACS758/ACS770/CH704应用于三相四桥臂逆变器的电流检测装置
  13. android 视频录制锐化,从录制到剪辑,用的同款APP,为什么你录制的游戏视频画面会远不如别人?...
  14. 使用Service Worker发送Push推送
  15. 月薪20k+的Android面试都问些什么?完整PDF
  16. SVACH264AVS标准的去块滤波比较
  17. Golang调用mssql存储过程
  18. PSpice分析类型
  19. Drupal Views教程
  20. 1.MySQL,JDBC

热门文章

  1. SPOJ Play on Words
  2. 后台返回数据时,接口设计规范参考
  3. SQL tp3.2 批量更新 saveAll
  4. 移动web适配利器-rem
  5. VS2013 启动时遇到空白窗口
  6. 多线程中,static函数与非static函数的区别?
  7. Vue.js起手式+Vue小作品实战
  8. 4.MySQL优化---多表查询优化
  9. 异地备份——windows 与 linux
  10. 再硬写一个最简单的HTTPSERVER