Валентин!
Безголовый Хром (Headless Chrome) — это полноценный браузер без графического интерфейса. Он работает быстрее и использует меньше памяти, чем обычный браузер. Управляют им программно через АПИ.
Чаще всего безголовые браузеры используют для автоматизации и тестирования сайтов и веб‑приложений, для генерации скриншотов и ПДФ‑документов.
В бюро
Мы используем безголовый Хром через Puppeteer — АПИ для управления Хромом в программах на Яваскрипте. Чаще всего — для скриншотов:
В Издательстве бюро
Раньше превьюшки книжных разворотов генерировал PhantomJS при финальной сборке книги. Это было медленно и ненадёжно: PhantomJS иногда генерировал пустые изображения, падал и не поддерживал видео и современный ЦСС.
Сейчас превьюшки генерирует Хром прямо в процессе создания и редактирования разворотов. Чтобы быстро генерировать превьюшки, мы держим Хром запущенным постоянно, а для генерации превьюшек открываем в нём табы. В среднем на генерацию одной превьюшки уходит 2,2 секунды.
Чтобы надёжно и стабильно генерировать превьюшки, используем отдельную очередь задач. Если превьюшку не получилось сгенерировать за отведённое время или она получилась битой, повторяем задачу.
В Советах
Обложки советов и подборок для соцсетей также генерирует Хром. Чтобы сделать обложку, Хром открывает страницу с шапкой совета и скриншотит её:
Такой подход проще и быстрее, чем программная генерация картинок: если решим поменять дизайн, обновим ЦСС на странице с обложкой.
В Школе бюро
Когда студент заканчивает обучение на подкурсах, мы присылаем ему письмо с сертификатом. Картинку с баллом также генерирует Хром из страницы со свёрстанным фактоидом:
В будущем
Мне бы хотелось использовать Хром для автоматизации вёрстки и мониторинга производительности. Скажем, в Хроме можно было бы автоматически перебирать и оценивать вёрстку разворотов, проверяя её на разных экранах и устройствах.
Ещё по теме
P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.