V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
oldcai
V2EX  ›  问与答

如何统计网页点击坐标

  •  
  •   oldcai · 2015-08-07 17:19:56 +08:00 · 1609 次点击
    这是一个创建于 3388 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的

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

    方案1

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

    缺点:

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

    方案2

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

    缺点:

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

    方案3(1+2)

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

    缺点:

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

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

    求教更科学的方法来统计

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

    5 条回复    2015-08-08 09:07:14 +08:00
    hellojinjie
        1
    hellojinjie  
       2015-08-07 17:33:25 +08:00 via Android   ❤️ 1
    点击信息存cookie里就可以了啊,下一个页面打开的时候,判断下cookie里有没有上次的点击数据,如果有就ajax提交。
    zrp1994
        2
    zrp1994  
       2015-08-07 17:38:10 +08:00   ❤️ 1
    方案2设置个小一点的setTimeout触发原来的链接事件应该就可以了
    下面是临时谷歌的:
    https://github.com/osde8info/ClickHeat
    包含前端和后端
    js在https://github.com/osde8info/ClickHeat/blob/master/js/clickheat-original.js
    你可以参考下
    zrp1994
        3
    zrp1994  
       2015-08-07 17:39:16 +08:00
    @hellojinjie 前提是还有下一次……如果用户只浏览一次这个域名的网站数据就全丢失了
    akira
        4
    akira  
       2015-08-07 18:25:00 +08:00
    百度本身也有提供这个功能吧
    hellojinjie
        5
    hellojinjie  
       2015-08-08 09:07:14 +08:00 via Android
    @zrp1994 如果没有下一次就没有点击啊,也就不需要记录
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:25 · PVG 00:25 · LAX 08:25 · JFK 11:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.