--- Понимаю, что ответ бесполезен. Намекаю на то, что стоит один раз настроить IDE под себя, сохранить настройки через экспорт. Я свои настройки пару лет тюнил и сейчас они идеальны (для меня, разумеется).
raulvodov, моё мнение будет непопулярным.
Я отказался от бутстрапа целиком, т.к. большинство его компонентов никогда не использую.
Для раскладки страницы я выдернул оттуда только сетку, ее и использую https://github.com/delphinpro/bs-grid-system
Для управления типографикой и ритмом дернул миксины из компаса, их и использую https://github.com/delphinpro/vrhythm
Мобильное меню https://github.com/delphinpro/cool-menu
Для кнопок, форм и прочего также есть заготовки, без излишеств, но покрывающие всю необходимую функциональность (этого правда в гитхабе пока нет — недосуг оформлять репу).
Кэширование – это способ оптимизации работы приложения, при котором повторно запрашиваемый контент сохраняется и используется для обслуживания последующих запросов
Например галерея изображений. Сервер генерит превьюшки и складывает в кэш-папку. В следующий раз картинка не генерится, а отдается готовая. Кэширование? Да.
Выполняется тяжелый запрос к БД. Актуальность данных сохраняется в течении определенного времени. Зачем нам на каждое обращение выполнять тяжелый запрос? Мы сохраним результат его выполнения и будет использовать в будущем, пока он не протухнет. Кэширование? Да.
Шаблонизатор компилирует шаблон, и кладет результат в кэш, чтобы не делать этого каждый раз. Потому что актуальность шаблона сохранится до его изменения и незачем каждый раз тратить ресурсы на парсинг. Кэширование? Да.
Могут сохраняться целые страницы, или отдельные их части. И т.д. и т.п.
ну что за совет... Вы вроде достаточно зрелый разработчик.
Сетка ведь это не просто набор готовых классов из бутстрапа. Это система раскладки блоков на странице. Вы можете не использовать сетку бутстрапа, написать свои классы/миксины. Вы можете юзать css grid для раскладки страницы. Но вы все равно должны вписываться в сетку, определенную дизайнером.
так логика простая.
mousedown - начинаем двигать (left, translateX)
mousemove - следим за координатами ползунка, слева увеличиваем белую линию. если координаты (по X) больше или равны очередному кружку - перекрашиваем его (навешиваем класс).
координаты точек высчитываем сразу при инициализации и обновляем по onresize, если необходимо.