Выбор ответа Junior Web API и воркеры обновлено
Чем делать бесконечную ленту
Вопрос
Какой API лучше всего подходит, чтобы подгружать следующую страницу ленты, когда пользователь доскроллил до конца?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: IntersectionObserver на элемент-маркер в конце списка. IntersectionObserver асинхронно сообщает о входе элемента в область видимости, без постоянных замеров в главном потоке, а rootMargin позволяет начать загрузку заранее.
Варианты ответа
- MutationObserver на
document.bodyсsubtree: true - ResizeObserver на контейнер ленты и её последний элемент
setInterval, проверяющийscrollTopраз в 100 мс- IntersectionObserver на элемент-маркер в конце спискаправильный ответ
Разбор
IntersectionObserver асинхронно сообщает о входе элемента в область видимости, без постоянных замеров в главном потоке, а rootMargin позволяет начать загрузку заранее. MutationObserver следит за изменениями DOM, а не за видимостью. ResizeObserver сообщает об изменении размеров. Опрос по таймеру тратит ресурсы и вызывает лишние замеры раскладки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.