目的
想做个网页点击热度图之类的功能,然而并不知道如何实现。
方案1
将提交点击事件放到点击事件js中,阻塞提交点击事件后跳转到目标页面。
缺点:
加大了等待时间,牺牲了点击链接流畅的体验。
方案2
异步一边Ajax提交点击事件,一边跳转到目标页面。
缺点:
不能保证服务端能收到请求。
方案3(1+2)
- 异步一边Ajax提交点击,一边Ajax加载目标页面;
- 把html render到当前页面;
- 后通过window.history.pushState()来更改当前浏览器地址
缺点:
不是所有浏览器都支持无刷新更改当前浏览器地址。
没有普适性,不是在当前域名的URL不能如此统计。当然,可以做到非当前域名的URL就用阻塞的方案来统计。
求教更科学的方法来统计
这些方法都是有缺点的,我记得以前有看到过一个网站提供点击热度统计服务,应该是有办法实现的。