我想创建自己的客户端鼠标跟踪器,它将数据发送到数据库,我可以获得数据,但我不确定如何以与最初输入的方式完全匹配的方式重放数据。
对于每个 'onmousemove' 事件,我将坐标保存在一个数组中,每隔一秒我就会将该数组放入另一个数组中。
Array(2)[
Array(34)
0:{x: 393, y: 176}
1:{x: 393, y: 175}
2:{x: 393, y: 176}
3:{x: 388, y: 182}
4:{x: 383, y: 189}
5:{x: 379, y: 195}
Array(6)
0:{x: 393, y: 176}
1:{x: 393, y: 175}
2:{x: 393, y: 176}
3:{x: 388, y: 182}
4:{x: 383, y: 189}
5:{x: 379, y: 195}
]
我显然没有考虑清楚,因为我的逻辑在重播阶段崩溃了,我以为我会每秒迭代一个嵌套数组,但这会发生得非常快,然后我想也许将一秒除以数组中的元素数量。
数组 1 有 10 个元素,因此时间间隔将每 100 毫秒触发一次以移动光标,这仍然不是正确的解决方案,因为用户可能在第二个的前半部分创建了所有坐标,而在后半部分没有创建导致重播丢失所有真正的用户动态。
那么我应该以什么方式持久化数据,以便它可以被重放而不会丢失用户在重放过程中的确切行为呢?
React Redux 状态与这种跟踪器相结合,理论上可以完全重放用户与应用程序的交互,这个想法让我着迷。