Javascript становится быстрее Pointer Events - PullRequest
1 голос
/ 29 марта 2019

Я создаю аналитическое приложение для Microsoft Surface.Приложение должно уметь собирать данные в массив из стилуса MS во время рисования (сейчас я использую HTML5 canvas).Я использую электрон , чтобы сделать его настольным, для сбора данных стилуса 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 голосов
/ 29 марта 2019

Количество перемещений курсора по экрану в зависимости от разрешения мыши (устройства ввода), больше значений нет, поэтому вы не можете просто увеличить его. Но вы можете интерполировать , чтобы увеличить количество точек в ваших данных.

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

Пользовательский агент ДОЛЖЕН отправить это событие при перемещении указывающего устройства. пока это над элементом. Частота событий в то время как указывающее устройство перемещается на реализацию, устройство и Платформо-зависимые, но несколько последовательных событий перемещения мыши ДОЛЖНЫ быть уволен за устойчивое движение указательного устройства, а не один событие для каждого случая движения мыши. Реализации Рекомендуется определить оптимальную частоту баланса отзывчивость с производительностью.

...