如何统计网页点击坐标

2015-08-07 17:19:56 +08:00
 oldcai

目的

想做个网页点击热度图之类的功能,然而并不知道如何实现。

方案1

将提交点击事件放到点击事件js中,阻塞提交点击事件后跳转到目标页面。

缺点:

加大了等待时间,牺牲了点击链接流畅的体验。

方案2

异步一边Ajax提交点击事件,一边跳转到目标页面。

缺点:

不能保证服务端能收到请求。

方案3(1+2)

  1. 异步一边Ajax提交点击,一边Ajax加载目标页面;
  2. 把html render到当前页面;
  3. 后通过window.history.pushState()来更改当前浏览器地址

缺点:

不是所有浏览器都支持无刷新更改当前浏览器地址。

没有普适性,不是在当前域名的URL不能如此统计。当然,可以做到非当前域名的URL就用阻塞的方案来统计。

求教更科学的方法来统计

这些方法都是有缺点的,我记得以前有看到过一个网站提供点击热度统计服务,应该是有办法实现的。

1609 次点击
所在节点    问与答
5 条回复
hellojinjie
2015-08-07 17:33:25 +08:00
点击信息存cookie里就可以了啊,下一个页面打开的时候,判断下cookie里有没有上次的点击数据,如果有就ajax提交。
zrp1994
2015-08-07 17:38:10 +08:00
方案2设置个小一点的setTimeout触发原来的链接事件应该就可以了
下面是临时谷歌的:
https://github.com/osde8info/ClickHeat
包含前端和后端
js在https://github.com/osde8info/ClickHeat/blob/master/js/clickheat-original.js
你可以参考下
zrp1994
2015-08-07 17:39:16 +08:00
@hellojinjie 前提是还有下一次……如果用户只浏览一次这个域名的网站数据就全丢失了
akira
2015-08-07 18:25:00 +08:00
百度本身也有提供这个功能吧
hellojinjie
2015-08-08 09:07:14 +08:00
@zrp1994 如果没有下一次就没有点击啊,也就不需要记录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/211565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX