以下是我如何使用JavaScript获得一些“关键速度输入数据”的基本方法:
<!DOCTYPE html>
<html>
<body>
<input id="in"></input>
<p id="out">new</p>
<script>
var downlast = 0;
document.getElementById("in").onkeydown = function () {
var downlast2 = new Date().getTime();
document.getElementById("out").innerHTML += ","+(downlast2-downlast);
downlast = downlast2;
};
</script>
</body>
</html>
但是,有时CPU很忙,会延迟事件触发,导致甚至超过50ms的错误。那么,有没有办法修改这个脚本来捕获和消除这些异常值中的大多数呢?我希望找到按键次数的最小/最大界限,但现在JavaScript的事件驱动方法似乎不可能做到这一点(即,与事件相比,我更希望有一个函数来检查当前是否按下了某个键)。
最普遍的是,我正在寻找任何可以在Chrome浏览器上工作的解决方案,所以我实际上不需要坚持使用Javascript。如果我不能控制客户端的CPU有多忙,我如何才能更自信地收集输入数据呢?
发布于 2019-06-10 00:38:22
因为javascript中的所有执行都是在一个事件循环中调度的,所以它不能精确地测量用户按下按钮之间的间隔时间,因为这些信号必须在页面上运行的其他javascript之间进行调度。
我没有关于如何在浏览器中做到这一点的建议。
https://stackoverflow.com/questions/56512430
复制相似问题