Таймеры и слушатели (подписка на события) - основные лангольеры.
Для анимации - используем CSS
Обработчики событий (стараемся использовать реже) - JS
Для сложных/периодических вычислений: Asm.js
Ответ на "чтобы не лагало при...": используем ИЕРАРХИЧЕСКИЙ контроль слушателей событий и включаем/отключаем изоляцию целых "ветвей дерева" событий в различных ситуациях: ввод в поле, нахождение во вьюпорте и т.д.