У JQuery есть две версии для загрузки, одна из которых - производственная (19 КБ, минифицированная и сжатая с помощью Gzip). , а другая - разработка (120 КБ, несжатый код) .
Теперь компактная версия 19kb, если вы ее загрузите, вы увидите, что это все еще исполняемый код javascript. Как они его компактифицировали? И как я могу таким образом «минимизировать» свой код?
javascript
gzip
KalEl
источник
источник
Ответы:
Минификация своими руками
Ни один минификатор не может правильно сжать плохой код.
В этом примере я просто хочу показать, насколько много работает минификатор.
Что вам следует сделать перед минимизацией
А что касается jQuery ... я не использую jQuery. JQuery предназначен для старых браузеров, это было сделано из соображений совместимости ... проверьте caniuse.com, почти все работает в каждом браузере (также ie10 стандартизирован сейчас), я думаю, теперь это просто здесь, чтобы замедлить работу вашего веб-приложения ... если вам нравится,
$()
вы должны создать свою собственную простую функцию. И зачем беспокоиться о сжатии вашего кода, если вашим клиентам нужно постоянно загружать скрипт jquery размером 100 КБ? насколько велик ваш несжатый код? 5-6кб ..? Не говоря уже о множестве плагинов, которые вы добавляете, чтобы упростить задачу.Исходный код
Когда вы пишете функцию, у вас есть идея, начинаете писать, и иногда вы получаете что-то вроде следующего кода. Код работает. Теперь большинство людей перестают думать, добавляют это в минификатор и публикуют.
Вот уменьшенный код (я добавил новые строки)
Минифицировано с использованием ( http://javascript-minifier.com/ )
Но нужны ли все эти переменные, if, циклы и определения?
В большинстве случаев НЕТ !
ДОПОЛНИТЕЛЬНО (увеличивает производительность и короче код)
Math
)while
,for
... неforEach
)"{}","()",";",spaces,newlines
Теперь, если минификатор может сжать код, вы делаете это неправильно.
Ни один минификатор не может правильно сжать плохой код.
Сделай сам
Он делает то же самое, что и коды выше.
Производительность
http://jsperf.com/diyminify
Всегда нужно думать о том, что вам нужно:
Прежде чем вы скажете: «Никто не будет писать код, подобный приведенному ниже», проверьте первые 10 вопросов здесь ...
Вот несколько типичных примеров, которые я вижу каждые десять минут.
Хотите многоразовое состояние
Предупреждать да, только если он существует
Предупреждать да или нет
Преобразование числа в строку или наоборот
Округлить число
Этаж номер
переключатель случае
попробуй поймать
больше, если
но
indexOf
медленно, прочтите это https://stackoverflow.com/a/30335438/2450730числа
Несколько хороших статей / сайтов о побитовых / сокращенных записях, которые я нашел:
http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/
http://www.140byt.es/
http://www.jquery4u.com/javascript/shorthand-javascript-techniques/
Есть также много сайтов jsperf, показывающих производительность сокращений и битвси, если вы выполняете поиск с помощью своего любимого поискового движка.
Я мог бы заниматься одним часами .. но думаю, что пока этого достаточно.
если есть вопросы, просто задавайте.
И помни
Ни один минификатор не может правильно сжать плохой код.
источник
(10.4899845 +.5)|0
результат 10 вместо 11.Вы можете использовать один из многих доступных минификаторов javascript.
источник
Google только что предоставил компилятор javascript, который может минимизировать ваш код, исключить мертвые ветки кода и другие оптимизации.
компилятор google javascript
С уважением,
K
источник
Наряду с уменьшением вы также можете кодировать его в base64. Это делает ваш файл более сжатым. Я уверен, что вы видели файлы js, которые заключены в функцию eval () с переданными параметрами (p, a, c, k, e, r). Я прочитал об этом в статье Как уменьшить размер файла Javascript?
источник
Я написал крошечный скрипт, который вызывает API для минимизации вашего скрипта, проверьте его:
Использование:
источник
Недавно мне нужно было выполнить ту же задачу. Хотя компрессоры, перечисленные в JavaScript CompressorRater , отлично справляются со своей задачей, а инструмент очень полезен, они не очень хорошо справлялись с некоторым кодом jQuery, который я использую (проверки $ .getScript и jQuery.fn). Даже компрессор закрытия Google подавился теми же словами. Хотя в конечном итоге я мог бы сгладить изгибы, было слишком много щуриться, чтобы делать это постоянно.
Тот, который, наконец, работал без проблем, был UglifyJS (спасибо @ Aries51 ), и сжатие было лишь немного меньше, чем у всех остальных. И, как и в Google, у него есть HTTP API. Packer также хорош и имеет языковую реализацию на Perl, PHP и .NET.
источник
В настоящее время есть 2 способа минимизировать ваш код:
http://yui.github.io/yuicompressor/
Многие такие инструменты также доступны для Node и npm - это хорошая практика - автоматизировать унификацию Javascript с помощью Grunt.
http://www.modify-anything.com/
источник
Вы можете использовать javascript- минификатор ubercompute.com для минимизации вашего кода, он уменьшит ваш javascript-код до 75% от их исходной версии.
источник
Если вы используете редактор VSCode, доступно множество плагинов / расширений.
MinifyAll
, Например , это очень хороший один - совместим со многими расширения.Установите его и перезагрузите VSCode. Затем щелкните свой файл, откройте палитру команд (
Ctrl+Shift+p
), введите «minify this document» (Ctrl+alt+m
), другие доступные параметры, такие как сохранить исходный документ и так далее! Легко!источник