Javascript setInterval - как установить хорошие сроки и производительность - PullRequest
2 голосов
/ 01 апреля 2011

Я пишу простой плагин jquery, который позволяет мне добавлять классы к элементам в определенной позиции прокрутки.Чтобы выполнить это, вместо привязки событий onScroll , я вызываю функцию setInterval, которая проверяет текущее смещение Y-страницы:

interval = window.setInterval(update, 25);

Как вы можете видеть, яустановите интервал в 25 мс.Мне было интересно, следует ли считать это подходящим временем и как эффективно влияет производительность.

Ответы [ 2 ]

3 голосов
/ 01 апреля 2011

Для повышения производительности при анимации лучше использовать 'requestAnimationFrame'.Таким образом, браузер не будет обновляться постоянно, пока вкладка не активна + он может выполнять некоторые дополнительные оптимизации.

requestAnimationFrame пока не поддерживается большинством браузеров, но - конечно -У Пола Айриша есть отличный полифилл: http://paulirish.com/2011/requestanimationframe-for-smart-animating/

2 голосов
/ 01 апреля 2011

я думаю, что лучше, если вам лучше работать с чем-то вроде приведенного ниже кода, так что вы уверены, что функция обновления запускается только после завершения функции обновления.

function update() {
  //do stuff
  setTimer(); 
}

function setTimer() {
  timeout = window.setTimeout(update(), 25);
}
...