有关热点图

简介: 如果我们记录用户的点击或者鼠标的移动,并且绘制成热点图,生成的结果可以帮助我们分析和改良UI。 用于分析网站UI友好性的点击热点图可以这么来做: 最简单的方式是记录页面地址,鼠标相当于页面左上角的X和Y。

如果我们记录用户的点击或者鼠标的移动,并且绘制成热点图,生成的结果可以帮助我们分析和改良UI。

用于分析网站UI友好性的点击热点图可以这么来做:

简单的方式是记录页面地址,鼠标相当于页面左上角的X和Y。

然后从我们的网页截图,把热点绘制在这个图上。

但是这种热点图的缺点是不能考虑多种用户状态或者说页面状态给页面带来布局的变化。

改良方法是记录页面地址,页面状态(比如是否登录),以及X和Y。

然后根据不同的状态分别截取多张图,为一个页面生成一组热点图。

这种方式的缺点是不适合变化很多的页面,或是随着鼠标的点击变化的页面,比如页面的下拉或弹出层。

可以想到更合理的方式是,通过脚本为页面上每一个需要跟踪点击的元素(或是没有子元素的根元素)生成一个唯一的id(如果已有id了则使用原来的id)

生成id的方法如下:把元素的整个html(比如<div>你好</div>)进行md5 hash

然后我们在每一次点击的时候记录id以及访问量(当然也可以为每一条记录记录详细的时间,这样可以按时间统计)

然后制作一个特殊的页面,这个页面已经生成了所有元素id,使用脚本从后端读取采集到的数据,根据id为元素渲染颜色

(比如50以下绿色,50-100黄色,100-200桔黄色,200以上红色)也就是用脚本在实际的页面上生成热点图

这样直接观察这个可交互的页面就可以看到结果了

注意:

1) 热点图的数据可以只统计数量也可以为每一条数据记录:IP/浏览器类型/用户类型等等,这样我们就可以按照不同的维度来分析

2) 在采集样本的时候可以不用在所有的web服务器都收集,可以在负载均衡的部分服务器采集数据

 

在这里提供一个小程序,点击这里下载源代码,用于生成热点图,对于DEBUG方式会生成一些测试数据,对于RELEASE方式则从MONGODB读取数据

程序的界面如下:

SNAGHTML2901916d

生成的效果图如下:

5173 - 副本_20110128035146

观察热点图可以发现很多有趣的问题,可以帮助我们分析界面是否友好,以及改良策略。

在这里并没有提供前端脚本的实现和服务端的实现,因为都比较简单。抛砖引玉。

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
3月前
|
消息中间件 Java 应用服务中间件
我是如何通过火焰图分析让应用CPU占用下降近20%的
分享作者在使用Arthas火焰图工具进行Java应用性能分析和优化的经验。
|
5月前
|
Java
典型热点应用问题之应用A的"纯构建"耗时在最佳情况下的问题如何解决
典型热点应用问题之应用A的"纯构建"耗时在最佳情况下的问题如何解决
|
5月前
|
Java
典型热点应用问题之启用增量编译的问题如何解决
典型热点应用问题之启用增量编译的问题如何解决
|
5月前
|
Java Docker 容器
典型热点应用问题之fatjar应用场景中的优化前存在的问题如何解决
典型热点应用问题之fatjar应用场景中的优化前存在的问题如何解决
|
6月前
|
SQL 数据处理
数据倾斜问题之WithDistmapjoin方案中热点数据和非热点数据的处理如何解决
数据倾斜问题之WithDistmapjoin方案中热点数据和非热点数据的处理如何解决
56 0
|
6月前
|
SQL
云架构数据倾斜问题之无效值的数据源表以避免长尾效应如何解决
云架构数据倾斜问题之无效值的数据源表以避免长尾效应如何解决
|
7月前
图像热点链接
图像热点链接
33 2
|
8月前
|
JavaScript
性能工具之 FlameGraph 火焰图
其实很多类似 perf 的工具都能生成火焰图,像 systemtap/dtrace 之类的 并且这个思路,现在在 js 优化、代码优化等各方面都有具体的应用了 至于怎么理解? 简单点说,就是看谁又平又宽
171 7
性能工具之 FlameGraph 火焰图
|
Ubuntu
代码性能展现 火焰图
代码性能展现 火焰图
76 0
|
前端开发 数据可视化 关系型数据库
巧用 “ 火焰图 ” 快速分析链路性能
巧用 “ 火焰图 ” 快速分析链路性能
364 0
巧用 “ 火焰图 ” 快速分析链路性能