2020-12-23 15:56:22 阅读(183)
在用户体验研究过程中,我们经常需要使用前端脚本收集与用户访问行为相关的数据,如监控鼠标点击事件、记录点击位置和点击元素。一个不可避免的问题是什么时候将收集到的数据发送到服务器?最直接的解决方案是每次收集数据后立即发送,但这可能会带来更多的HTTP请求,一方面降低页面性能,另一方面也增加了管理服务器的压力。另一个方案是先缓存收集到的数据,然后按照一定的规则发送(比如每收集10个数据发送一次,或者每5秒发送一次),最终的方案是在离开页面之前(beforeunload事件触发时)缓存所有数据。但是这个终极计划也有自己的问题,比如beforeunload,这个事件可靠吗?在这个事件中发送打点的损失率是多少?最近我们对这些问题进行了研究,对这一损失率也有了更具体的认识。主要研究过程如下:首先,我们需要收集数据。这里有两个主要数据:页面加载时立即发送一个点,称为PV点;监控页面的beforeunload事件,并在事件触发时发送另一个点,称为unload点。显然,如果丢失率为0或非常小,PV打点的数量应该等于或非常接近unload打点的数量。即损失率的计算公式为:损失率的计算公式为:损失率=(PV-unload)/PV*100% 如下图所示:按照这个想法,我们在淘宝页面上做了抽样埋点,获得了足够的PV和unload打点数据。但现实总是不完美的。在整理这些数据的过程中,我们发现一些unload数据没有相应的PV数据,也就是说,由于各种原因,不仅绑定beforeunload事件的unload点可能丢失,而且在页面初始化时发送的PV点也可能丢失,尽管概率很低。因此,我们添加了一个pvid参数作为一个随机生成的字符串,每组pv/unloadpvid都是一样的。这样,我们就可以通过这个参数过滤出完整的PV/unload点记录,然后通过一些适当的分类获得有效的统计数据。接下来,根据上述公式,我们计算出beforeunload打点的总损失率,约为20.81%,整个过程如下图所示: 使用上述方法,我们连续统计了几天的数据,发现beforeunload的总丢失率保持在20%左右。接下来,我们将根据浏览器对这些数据进行细分,看看每个浏览器下的丢失率是否有差异。先来看看当前浏览器的分布情况: 根据UA字段细分清洗的日志数据的结果如下: 从上图可以看出,各大浏览器的性能不同,其中份额最大的IE8在丢失率上表现最好,远低于整体平均水平,而chrome和safari则远高于平均水平。每个浏览器的丢失率乘以各自的权重(市场份额)后再求和,得到总平均丢失率。在我们的实验中,总丢失率约为20%。结论:使用beforeunload事件不可靠,总损失率约为20%,浏览器性能不同;当然,在一些损失率要求较低的收集任务中,该事件仍然可以使用,如统计页面停留时间、页面内容曝光率等。最后需要注意的是,丢失率与用户浏览器的分布、所采用的管理方法和管理服务器的响应速度有关,仅供参考。
以上就是关于beforeunload事件的丢失率有多少?的相关介绍,更多beforeunload事件的丢失率有多少?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对beforeunload事件的丢失率有多少?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一