Я очень волновался после прочтения this article о более быстрых эффектах прокрутки. Я пошел реализации метода Warry, чтобы увидеть, если я мог заметить разницу в производительности - по сравнению с использованием слушателя событий прокрутки:Быстрая прокрутка без onScroll?
window.addEventListener('scroll', function() {
console.log('Scrolling: ' + window.pageYOffset);
});
код из статьи:
function loop() {
if (lastPosition == window.pageYOffset) {
requestAnimationFrame(loop);
return false;
} else lastPosition = window.pageYOffset;
console.log('Scrolling: ' + window.pageYOffset);
// make sticky calculations...
requestAnimationFrame(loop);
}
loop(); // start loop
Эти две части выходного кода то же самое (Y) и кажутся эквивалентными по производительности. Поэтому мой вопрос: правильно ли статья?
Также, как requestAnimationFrame
подходит для этой фотографии? Я знаю, что он сообщает браузеру, что он хочет выполнить повторную краску. Или ... позиция фиксированная просто путь? Меня интересует эта тема, потому что я работаю над плагином для липких элементов.
Информация и рекомендации!
«Кажется, что это эквивалентно по производительности» - как вы измерили это? – Bergi
Речь идет о более эффективных * эффектах *. Если вы просто заходите на консоль, вы не почувствуете разницы (кроме возможных разных номеров или журналов). – Bergi
Выходы были одинаковыми на каждом тике. Я также переключил все функции рендеринга (краска, границы слоя, счетчик FPS и проблемы с производительностью прокрутки) в DevTools от Chrome, чтобы увидеть, как будут выполняться липкие элементы. Не было никаких заметных различий. Я не писал для этого тестов; просто любопытно, что другие могут рассказать мне об этой теме. – JasonK