Минификация (также известная как минимизация) — это процесс минимизации кода и разметки на веб-страницах и файлах скриптов без изменения их функциональности. Это помогает сократить время загрузки и использование полосы пропускания на веб-сайтах. Минификация помогает повысить скорость и доступность сайта, что влияет на удобство работы пользователей с сайтом, делая его лучше.

Почему Минимизировать?

При написании кода разработчики, как правило, используют пробелы, комментарии и хорошо названные переменные, чтобы сделать код и разметку читабельными. Хотя эти методы помогают поддерживать управляемость кода, удобство его сопровождения и хорошее документирование; это ненужные символы для машин для выполнения/компиляции/и т.д. Эти символы обычно включают пробелы, символы новой строки, комментарии и иногда разделители блоков. Минификация уменьшает размер исходного кода, делая его передачу по сети (например, Интернету) более эффективной.

Минификация против сжатия

Минимизированный исходный код можно сразу же интерпретировать без необходимости распаковки, т. е. интерпретатор может работать как с исходным, так и с минимизированным исходным кодом. Однако сжатый исходный код должен быть распакован для компиляции/интерпретации или для его выполнения требуется специальный интерпретатор.

Минификация против обфускации

Обфускация — это процесс, используемый для сокрытия бизнес-логики, чтобы она стала нечитаемой для людей. Это сделано для того, чтобы реверс-инжиниринг усложнился. Для достижения своих целей минификация иногда использует приемы, используемые также при обфускации; например, сокращение имен переменных и рефакторинг исходного кода. Однако основная цель минификации не в том, чтобы скрыть бизнес-логику или сделать код нечитаемым.

Минимизация и укрупнение

По сути, это то же самое, что и минификация. Uglify JS — это библиотека JavaScript для минимизации файлов JavaScript. Чтобы «ухудшить» файл JavaScript, нужно минимизировать его с помощью Uglify. Uglification повышает производительность, снижая удобочитаемость.

Что следует учитывать при минификации

  • Минификация может нарушить работу сложных скриптов из-за переменных, зависящих от сайта, таких как темы, плагины и серверная среда.
  • Минификацию необходимо выполнять в сочетании с другими настройками производительности. Сам по себе он может не дать существенной прибыли.
  • Минификация также может привести к ошибкам, которые трудно отладить.

История минификации

  • В 2001 году Дуглас Крокфорд представил JSMin, который удалял комментарии и пробелы из кода JavaScript.
  • За ним последовал ЮИ Компрессор в 2007 году.
  • В 2009 году Google открыла свой Closure toolkit, включая Closure Compiler, который содержал функцию отображения исходного кода вместе с расширением Firefox под названием Closure Inspector.
  • В 2010 году Михай Базон представил UglifyJS.
  • UglifyJS был заменен на UglifyJS2 в 2012 году; переписывание должно было обеспечить поддержку исходной карты
  • В 2017 году Алекс Лам взял на себя обслуживание и разработку UglifyJS2, заменив его на UglifyJS3, который объединил CLI с API.

Минификация и CDN

Минификация играет важную роль в оптимизации внешнего интерфейса (FEO). Однако выполнение минификации и управление ею — сложная задача. Ручная минимизация является плохой практикой и практически невозможна, когда речь идет о больших файлах.

Сеть доставки контента (CDN) обеспечивает автоматическую минимизацию, при которой исходные несжатые файлы хранятся на главном сервере, а CDN автоматически сохраняет уменьшенные варианты на своих серверах кэширования и точках присутствия, обеспечивая их синхронизацию с исходными модификациями.

Рекомендации

Мы здесь, чтобы сделать сообщество сильнее, делясь своими знаниями. Подпишитесь на нас, чтобы быть в курсе последних и лучших событий в мире веб-технологий и мобильных технологий.