Выбор ответа Junior Web API и воркеры обновлено

Чем делать бесконечную ленту

Вопрос

Какой API лучше всего подходит, чтобы подгружать следующую страницу ленты, когда пользователь доскроллил до конца?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: IntersectionObserver на элемент-маркер в конце списка. IntersectionObserver асинхронно сообщает о входе элемента в область видимости, без постоянных замеров в главном потоке, а rootMargin позволяет начать загрузку заранее.

Варианты ответа

  1. MutationObserver на document.body с subtree: true
  2. ResizeObserver на контейнер ленты и её последний элемент
  3. setInterval, проверяющий scrollTop раз в 100 мс
  4. IntersectionObserver на элемент-маркер в конце спискаправильный ответ

Разбор

IntersectionObserver асинхронно сообщает о входе элемента в область видимости, без постоянных замеров в главном потоке, а rootMargin позволяет начать загрузку заранее. MutationObserver следит за изменениями DOM, а не за видимостью. ResizeObserver сообщает об изменении размеров. Опрос по таймеру тратит ресурсы и вызывает лишние замеры раскладки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме