Как движок javascript понимает уменьшенные JS-скрипты?

#javascript #minify

#javascript #минимизировать

Вопрос:

обычно, если открытый текст сжат, должна быть процедура распаковки. Как движок js интерпретирует уменьшенные сжатые js-скрипты??

Есть ли в движке js встроенные алгоритмы деминификации??

Комментарии:

1. минимизация просто сокращает имена переменных, устраняет как можно больше пробелов, удаляет комментарии и т.д… Что угодно, чтобы сделать JS меньше, но при этом оставаться синтаксически корректным. В принципе, это взяло бы var this_is_a_really_long_useless_var_name=0; и превратило бы это в var x=0;

Ответ №1:

его не нужно распаковывать, уменьшенный код по-прежнему является javascript, просто людям его труднее читать.

Ответ №2:

Во-первых, вам нужно понять, что существует разница между минимизацией и сжатием.

1. Минимизация не сжимает

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

2. Сжатие изменяет файл

Когда вы сжимаете файл, скажем, с помощью gzip, вы перекодируете данные файла или потока в другую кодировку, которая занимает меньше места. Именно в этом случае требуется процедура распаковки, чтобы перевести файл обратно в его несжатое состояние. При распаковке файл возвращается в исходное состояние.

3. Браузеры используют комбинацию сжатия и минификации для достижения как можно меньшего объема полосы пропускания.

Что замечательно в минимизации и сжатии, так это то, что это два отдельных процесса, которые выполняют две разные задачи, и их можно комбинировать, чтобы доставить в браузер файл как можно меньшего размера. Например, исходный исходный код jQuery на данный момент составляет более 200 КБ, но благодаря минификации и доставке сжатого файла для доставки в браузер требуется всего ~ 30 КБ пропускной способности.

Ответ №3:

Уменьшенный javascript по-прежнему остается javascript. Думайте об этом как об удалении пробела и переименовании длинной переменной в более короткую переменную.

Комментарии:

1. итак, по сути, минимизация — это вообще не сжатие по сравнению с алгоритмами сжатия, такими как LZW или Huffman coding??

2. Нет, это не сжатие. Это просто удаление пробелов и переименование переменных. В некоторых инструментах также есть оптимизация, проверьте компилятор закрытия.

Ответ №4:

Уменьшенный JavaScript — это просто тот же код, но сокращенный (например, var foobar = 2 может перед var a = 2;)

Файлы JavaScript в сжатом виде (и другие статические файлы) действительно сжаты и действительно распаковываются клиентским компьютером до того, как движок их использует.

Браузер сообщит серверу, что он может получить доступ к архивированному содержимому, с помощью заголовка, подобного

Принять кодировку: gzip, deflate