Javascript获得更快的指针事件

时间:2019-03-29 11:27:41

标签: javascript performance html5-canvas electron addeventlistener

我正在为Microsoft Surface创建分析应用程序。应用程序应该能够在绘图时从MS触控笔以阵列形式收集数据(现在我正在使用HTML5 canvas)。 我正在使用electron将其设置为桌面,以便进行手写笔数据收集HTML5 Pointer Events API

因此,现在有了事件侦听器,当触控笔在画布上移动时会触发

  

canvas.addEventListener(“ pointermove”,collectData,false);

collectData(event)函数如下:

function collectData(event) {
    array.push({
        a: event.tiltX,
        l: event.tiltY,
        p: event.pressure,
        t: Date.now()
    });
}

问题是,此事件侦听器每秒触发约70次,对我来说,这似乎是性能限制。出于我的目的,该值非常小,我想将该值增加两次甚至更多。

是否有任何方法可以增加它,或者还有另一种更有效的方法来从JS中的手写笔收集数据?

1 个答案:

答案 0 :(得分:0)

这是基于鼠标(输入设备)分辨率的光标在屏幕上移动的次数,没有更多的值,因此您不能仅仅增加它。但是您可以interpolate来增加数据中的点数。

https://w3c.github.io/uievents/#mousemove

  

移动指针设备时,用户代理必须调度此事件   当它在一个元素上时。事件发生的频率   指点设备已移动,是实现,设备和   特定于平台,但应连续多个mousemove事件   为持续的指针设备移动而触发,而不是一次   鼠标移动的每个实例的事件。实现是   鼓励确定最佳的频率速率来平衡   响应与性能。