当前位置: 首页 > news >正文

中国建设网站工程承包分包法珠海网站seo

中国建设网站工程承包分包法,珠海网站seo,济南市商务局官方网站,广州越秀区邮政编码什么是埋点 埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。 我们可以知道埋点实际上是对特定事件或…

什么是埋点

埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。
我们可以知道埋点实际上是对特定事件或者行为的数据监控和上报,常见的埋点上报方式有ajax、img、navigator.sendBeacon三种

1、基于ajax的埋点上报

因为埋点实际上是对关键节点的数据进行上报,是和服务端交互的一个过程,所以我们可以和后端约定一个接口通过ajax去进行数据上报。

封装一个方法:

function buryingPointAjax(data) {return new Promise((resolve, reject) => {// 创建ajax请求const xhr = new XMLHttpRequest();// 定义请求接口xhr.open("post", '/buryingPoint', true);// 发送数据xhr.send(data);});
}

使用时,直接调用即可

let info = {}
buryingPointAjax(info) // 这样就成功上报了info的对象

缺点
一般而言,埋点域名并不是当前域名,因此请求会存在跨域风险,且如果ajax配置不正确可能会浏览器拦截。因此使用ajax这类请求并不是万全之策。

2、通过一些支持跨域的标签去实现数据上报功能

我们可以通过一些支持跨域的标签去实现数据上报功能。
script link img就是我们上报数据的最好对象

script及link的缺陷
因为埋点涉及请求,因此我们需要保证script和link标签的src可以正常请求。
如果需要请求script和link,我们需要将标签挂载到页面上。

let a = document.createElement('script')
a.src = 'xxxx.js'

创建一个script标签,未挂载到页面上,不会发起请求

document.body.appendChild(a)

当我们将这个标签挂载到页面上时,发起了请求。

结论:当我们使用script和link进行埋点上报时,需要挂载到页面上,而反复操作dom会造成页面性能受影响,而且载入js/css资源还会阻塞页面渲染,影响用户体验,因此对于需要频繁上报的埋点而言,script和link并不合适。

基于img做埋点上报
通常使用img标签去做埋点上报,img标签加载并不需要挂载到页面上,基于js去new image(),设置其src之后就可以直接请求图片。

var img=new Image();
img.src="xxx.png";

控制台创建一个image标签,可以看到即便未被挂载到页面上依旧发起了请求。

结论
因此当我们做埋点上报时,使用img是一个不错的选择。
1、img兼容性好
2、无需挂载到页面上,反复操作dom
3、img的加载不会阻塞html解析,但img加载后并不渲染,他需要等待Render Tree生成完后才和Render Tree一起渲染出来

注:通常埋点上报会使用gif图,合法的GIF只需要43个字节

3、基于Navigetor.sendBeacon的埋点上报

Navigator.sendBeacon是目前通用的埋点上报方案,Navigator.aendBeacon方法接受两个参数,第一个参数是目标服务器的URL,第二个参数是所要发送的数据(可选),可以是任意类型(字符串、表单对象、二进制对象等等)。
navigator.sendBeacon() 方法可用于通过 HTTP POST将少量数据 异步传输到 Web 服务器。
**作用:**主要用于将传统数据发送到Web服务器,同时避免了用传统技术(如:XMLHttpRequest)发送分析数据的一些问题。

**补充:**sendBeacon 如果成功进入浏览器的发送队列后,会返回true;如果受到队列总数、数据大小的限制后,会返回false。返回true后,只是表示进入了发送队列,浏览器会尽力保证发送成功,但是否成功了,不会有任何返回值。

优势
相较于img标签,使用navigator.sendBeacon会更规范,数据传输上可传输资源类型会更多。
对于ajax在页面卸载上报,ajax有可能没上报完,页面就卸载了导致请求中断,因此ajax处理这种情况时必须作为同步操作。

sendBeacon是异步的,不会影响当前页到下一个页面的跳转速度,且不受区域限制。这个方法还是异步发出请求,但是请求与当前页面脱离关联,作为浏览器的任务,因此可以保证数据会发出去,不拖延卸载流程。

总结

前端埋点上报常使用ajax,img,navigator.sendBeacon。
不推荐使用ajax。
如果考虑兼容性的话,img是不二之选。
目前最合适的方案是navigator.sendBeacon不仅是异步的,而且不受区域限制,而且作为浏览器的任务,因此可以保证会把数据发出去,不影响页面卸载。

常见埋点行为

1、点击触发埋点
绑定点击事件,当点击目标元素时,触发埋点上报。
2、页面停留时间上报埋点
路由文件中,初始化一个startTime,当页面离开时通过路由守卫计算停留时间。
3、错误监听埋点
通过监听函数去接收错误信息。
例如:vue错误捕获、JS异常与静态资源加载异常、请求错误捕获
4、内容可见埋点
通过交叉观察器去监听当前元素是否出现在页面

http://www.hrbkazy.com/news/5855.html

相关文章:

  • wordpress 图书模板seo研究中心倒闭
  • 网站收录更新昆明网络推广方式有哪些
  • 南通网站建设.新浪微博指数查询
  • 不知此网站做男人也网络营销的优势与不足
  • 安卓做网站教程东莞网络优化哪家公司好
  • 青岛谷歌seo什么建站程序最利于seo
  • 网站图标ico百度竞价推广开户费用
  • 才做的网站怎么搜不到网站收录有什么用
  • 石家庄网站建设制作扬中网站制作
  • 建个人网站要多少钱百度官方网站入口
  • 文件管理宁波seo教程app推广
  • 大埔做网站社区建站网站系统
  • 微网站和手机站区别墨子学院seo
  • 网站后台页面模板下载营销型网站分析
  • 专为男人做的网站营销咨询公司
  • 在哪里建设网站爱站网站长百度查询权重
  • 网站建设的小故事金华seo全网营销
  • 上海公司注册网站2023年新闻热点事件
  • ipad wordpress宁波seo整体优化公司
  • 兰溪网站建设公司沈阳关键字优化公司
  • 百度在西安的公司叫什么合肥seo网站建设
  • 大棚建设的网站seo数据优化教程
  • 商丘做网站需要多少钱企业如何开展网络营销
  • thinkphp企业网站百度官网网站
  • c mvc 网站开发进阶之路网站seo 工具
  • 做网站优化的协议书微信营销方案
  • 1微信网站怎么建设如何做电商
  • 英文网站建设维护网站搜索优化
  • 网站项目意义中国十大关键词
  • 做网站赚钱流量百度竞价什么意思