В Javascript возможно ли в обработчике события mousemove определить, есть ли ожидающие события mousemove в очереди?Javascript mousemove queue
Или, желательно, чтобы очередь событий пропускала все события mousemove в очереди, за исключением последней?
Я использую MouseMove & других события мыши, чтобы позволить пользователям перетаскивать элементы по экрану, и мне не нужно тратить ЦП & циклов GPU перерисовки перетаскиваемых элементов на каждом MouseMove события (в котором я обновляю верхнее & свойства CSS слева), если я могу пропустить промежуточные события достаточно быстро.
В настоящее время у меня нет проблем с производительностью или визуализацией; Я просто хочу сделать мой JavaScript максимально эффективным.
Определение "перерисовать". Является ли это просто установкой свойств 'left' /' top', или это более активно? –
Я думаю, что есть более интересные способы исправить вашу проблему, чем проверять очередь событий. Такой код действительно трудно понять. Легче просто установить таймер и только перерисовать, если, скажем, 1/10 секунды прошло. Увеличьте время, если вам нужно уменьшить нагрузку на оборудование, но они говорят, что люди могут обнаруживать события до 1/10 секунд друг от друга. Таким образом, перерисовка чаще всего делает то, что большинство людей даже не может обнаружить (хотя возможно, что мерцающий эффект кажется некоторым некоторым людям). –
@CrescentFresh: Да, перерисовка - это просто 'left' /' top'. – XDR