Я делаю поблочную подгрузку страницы: когда на экране появляется последний тизер товара, должна появиться кнопка "Показать еще".
Сейчас на событии scroll висит такой обработчик:
_checkingVisible() {
const coordinates = this.lastChild.getBoundingClientRect();
if (window.innerHeight > coordinates.bottom) {
console.log('Server response...');
}
}
Соответственно, когда прокрутка доходит до последнего тизера, нужно
однократно обратиться к серверу. Как это лучше реализовать? Я пока вижу два пути:
1) Добавить глобальный флаг isRequest и активировать его при переходе в функцию запроса к серверу. Снимать флаг после того, как пользователь кликнет по кнопке "Показать еще" и отобразится новый блок тизеров. При наличии флага не вызывать функцию запроса к серверу.
2) Снимать слушателя с события прокрутки на время выполнения запроса к серверу и, аналогично, возвращать его после того, как пользователь кликнет по кнопке, чтобы раскрыть новый блок.
Есть ли более изящный вариант?