AlexandraWeather, Сейчас закомментирван. А когда я смотрел, не был закомментирован. И класс show устанавливался при любом событии, что при появлении (isIntersecting: true), что при исчезновении (isIntersecting: false).
А сейчас у вас снова та же ситуация. При открытии страницы по первому блоку приходит событие c isIntersecting: true. Включается анимация, блок исчезает с экрана, приходит событие с isIntersecting: false, анимация отменяется, блок появляется на экране и так по кругу.
AlexandraWeather, Сейчас происходит следующее:
При отрисовке появлении блоков для каждого сразу генерируется событие с isIntersecting: false. Блокам добавляется класс show. Блоки выезжают на экран, для полностью появившегоя блока снимается наблюдение, после чего он всегда остаётся в основном потоке.
My1Name,
1. Конкретный вариант зависит от того, что именно в "что-то делаем". Если там больше нет вложенности, то можно и внутрь if код поместить. Если есть, то чем меньше вложенность, тем проще читать программу.
2. Заменить нельзя, это принципиально разные команды.
Gelyano, И? Это же смешные объёмы для базы данных. Если база в нормальной форме, то замены сделаны отдельной таблицей с внешними ключами. Достаточно перевести эти ключи в каскадный режим, нормализовать артикулы в основной таблице и в таблице замен они нормализуются автоматически.
Два вопроса.
1. Может ли одна запись в таблице Product или Offer быть связана с несколькими записями в File?
2. Может ли одна запись в таблице File быть связана с несколькими записями в Product или Offer?
Hardelele, Чуть-чуть дополню ответ. В первую очередь это нужно, чтобы гарантированно не сломать область видимости переменных, объявленных через let или const. Блок, ограниченный фигурными скобками, имеет собственную область видимости.
Gizaster G, Ну, например, на HomeAssistant я бы сделал binary sensor на интеграции Ping и автоматизацию по его статусу. Правда, на WiFi возможна потеря пакетов, так что пришлось бы делать задержку, скажем, на три подряд неудачных пинга.