Я столкнулся с тем, что мои реализации на основе setTimeout очень нестабильны.
Самая частая проблема - запуск функции на событие скролла, без таймаутов функция запускается на каждый скролл, а с ним работает непредсказуемо. И, насколько я понял, в Chrome и Firefox логика работы таймаутов различается. http://javascript.ru/blog/subzey/firefox-settimeout
У меня возникли вопросы.
Объясните, пожалуйста, на каких-нибудь примерах, как делается "по уму", в средних и больших проектах.
Может посоветуете литературу, в которой я смогу найти объяснения с примерами реализаций.
setTimeout нормальная практика. setTimeout можно использовать setInterval. Но все зависит от задачи поставленной.setTimeout и вообще про микротаски то вам нужно понимать event loop. И лучшее объяснение для этого есть у Джейка Арчибальда. посмотрите видео на ютубе.Так же если вы решаете задачи связанные именно со скролом то есть слушатели событий для этого. Или можно воспользоваться rxJs бибилиотекой есть методы которые создают observable из событий. Так же в таких методых не забывайте о debounce. чтобы не вызвать перегрузки на странице.
Продвижение своими сайтами как стратегия роста и независимости