Присоединение обработчиков к событию прокрутки окна

Джон Ресиг предлагает использовать setInterval (), чтобы уменьшить количество вызовов обработчика - см. http://ejohn.org/blog/learning-from-twitter/

Решение Джона из сообщения в блоге:

var outerPane = $details.find(".details-pane-outer"),
    didScroll = false;

$(window).scroll(function() {
    didScroll = true;
});

setInterval(function() {
    if ( didScroll ) {
        didScroll = false;
        // Check your page position and then
        // Load in more results
    }
}, 250);

Может ли вызов интервала продолжения действительно быть разумным идея?

Будет ли подход Майкла Джексона иметь больше смысла, поскольку он не означает, что мы постоянно проводим опросы?

Решение Майкла из комментариев:

var timer = 0;

$(window).scroll(function () {
  if (timer) {
    clearTimeout(timer);
  }

  // Use a buffer so we don't call myCallback too often.
  timer = setTimeout(myCallback, 100);
});

Кто-нибудь может поделиться советом / мнением?

Рич

]
7
задан jfrej 8 August 2017 в 10:59
поделиться