我希望建立一个内部调试系统,以便我们了解用户对某些事情的反应。
将所有鼠标点击,移动等通信回服务器的最佳方式是什么?
我想到的一种方法是在body
上为所有内容运行绑定,然后将其添加到在页面卸载时发送的数组中,但我认为这可能会严重杀死浏览器用户决定点击视线中的所有内容,或者只是在页面上移动鼠标,在工作中坐了4个小时。
理想情况下,我想避免使用网络套接字。
我确信此操作已经完成,所以我很想知道它是如何完成的。
由于
答案 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个主页按钮,哪个更受欢迎等等)
希望这有助于其他任何人陷入这种困境。