jQuery:记录所有页面交互

时间:2017-07-13 12:21:45

标签: javascript jquery performance debugging

我希望建立一个内部调试系统,以便我们了解用户对某些事情的反应。

将所有鼠标点击,移动等通信回服务器的最佳方式是什么?

我想到的一种方法是在body上为所有内容运行绑定,然后将其添加到在页面卸载时发送的数组中,但我认为这可能会严重杀死浏览器用户决定点击视线中的所有内容,或者只是在页面上移动鼠标,在工作中坐了4个小时。

理想情况下,我想避免使用网络套接字。

我确信此操作已经完成,所以我很想知道它是如何完成的。

由于

1 个答案:

答案 0 :(得分:0)

对于那些你想知道的人,我使用了这里找到的答案(How do you log all events fired by an element in jQuery?

作为包装器,结合了@ hallleron的方法 - 将值存储在由|分隔的字符串中,每隔3.5秒触发一次AJAX查询,然后将数组设置回null。在页面卸载时,AJAX查询最后一次触发。

我还考虑让卸载脚本动态创建一个iFrame,其中包含一个动态生成的表单和自动发布内容的内容,以防AJAX因任何原因而挂起。

所有数组字符串都使用自己的CSRF令牌,并为客户端生成一个随机生成的ID,然后在服务器端进行散列,并用于检查是否已经发送,只是为了停止任何可能的双AJAX请求。

在服务器端,使用ARCHIVE引擎类型和INSERT DELAYED插入方法存储它。

最终我可能会将日志记录系统移动到自己的EC2 / RDS组。

这背后的原因是能够看到网站最受欢迎的功能,谁在点击哪里(比如说有2个主页按钮,哪个更受欢迎等等)

希望这有助于其他任何人陷入这种困境。