Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ни в коем случае нельзя заменять click на mousedown. Не у каждого пользователя есть мышь, а как же клавиатура и тач устойства.
Необходимо одно событие Click заменить на несколько: mousedown, keydown и touchstart.
Проще говоря, изначальный совет «замените click на mousedown и увеличьте скорость приложения» не очень корректный, и может больше навредить, чем помочь.
function debouncer( func , timeout ) {
var timeoutID , timeout = timeout || 200;
return function () {
var scope = this , args = arguments;
clearTimeout( timeoutID );
timeoutID = setTimeout( function () {
func.apply( scope , Array.prototype.slice.call( args ) );
} , timeout );
}
}
$( window ).resize( debouncer( function ( e ) {
// do stuff
} ) );
Хотите субъективно увеличить скорость срабатывания интерфейса? Замените событие click на mousedown, если это возможно (если нет драг-н-дропов и событий двойного щелчка). Это позволит избежать задержки в десятые или сотые доли секунды, прежде чем пользователь отпустит кнопку мыши.
let application = {
name: 'test',
handleEvent() { console.log(this.name) }
}
document.addEventListener('click', application);
document.addEventListener('mousemove', function(event) {
console.log(event.type);// В IE8 тут будет ошибка
}.throttle(200));
Несколько интересностей и полезностей от веб-разработчика *