oldcai
0.01D
V2EX  ›  问与答

如何统计网页点击坐标

  •  
  •   oldcai ·
    PRO
    · Aug 7, 2015 · 2096 views
    This topic created in 3993 days ago, the information mentioned may be changed or developed.

    目的

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

    方案1

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

    缺点:

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

    方案2

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

    缺点:

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

    方案3(1+2)

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

    缺点:

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

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

    求教更科学的方法来统计

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

    5 replies    2015-08-08 09:07:14 +08:00
    hellojinjie
        1
    hellojinjie  
       Aug 7, 2015 via Android   ❤️ 1
    点击信息存cookie里就可以了啊,下一个页面打开的时候,判断下cookie里有没有上次的点击数据,如果有就ajax提交。
    zrp1994
        2
    zrp1994  
       Aug 7, 2015   ❤️ 1
    方案2设置个小一点的setTimeout触发原来的链接事件应该就可以了
    下面是临时谷歌的:
    https://github.com/osde8info/ClickHeat
    包含前端和后端
    js在https://github.com/osde8info/ClickHeat/blob/master/js/clickheat-original.js
    你可以参考下
    zrp1994
        3
    zrp1994  
       Aug 7, 2015
    @hellojinjie 前提是还有下一次……如果用户只浏览一次这个域名的网站数据就全丢失了
    akira
        4
    akira  
       Aug 7, 2015
    百度本身也有提供这个功能吧
    hellojinjie
        5
    hellojinjie  
       Aug 8, 2015 via Android
    @zrp1994 如果没有下一次就没有点击啊,也就不需要记录
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5567 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 08:55 · PVG 16:55 · LAX 01:55 · JFK 04:55
    ♥ Do have faith in what you're doing.