Почему Bing запутывает их JavaScript?

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

Священная стена текста!

И это заставило меня задуматься, есть ли какие-либо преимущества для обфускации вашего (X) HTML, CSS и JavaScript, как это? Чтобы уменьшить размер файла, возможно?


Edit: Оглянувшись, я понял, что это довольно распространенная практика. Никогда не смотрел на это с точки зрения минерализации раньше!

Ответ 1

Они не запутывают. Они minifying, чтобы уменьшить пропускную способность, используемую миллионами запросов, которые они видят каждый день.

Цель JavaScript и CSS минимизация всегда заключается в сохранении эксплуатационные качества кода уменьшая общий байт (как в сырьевых условиях, так и после gzipping, поскольку большинство JavaScript и CSS с веб-серверов производства gzipped как часть протокола HTTP).

Вам также может быть интересно прочитать Yahoo! Сообщение пользователя в пользовательском интерфейсе под названием "Minif v. Obfuscation" .

Ответ 2

2 основных причины, чтобы запутать ваш код:

  • Уменьшите общий размер файла (как вы упомянули). Если вы замените функцию "CallThisFunctionAndReturnAnArray" на "C" - вы сохранили много символов в вашем файле.

  • Защита интеллектуальной собственности - в то время как, если это реально определенный спорно, это общее обоснование для этого. Вы можете обойти это с помощью хороших инструментов, или если вы просто очень умны.

Ответ 3

Размер файла определенно будет полезным, так что, например, Gmail не только делает это, но и застегивает его содержимое.

Ответ 4

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

Ответ 5

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

Что касается обфускации, чтобы уклониться от любопытных глаз - Нет. Не делайте этого.

Ответ 6

Только для уменьшения размера и только для больших модулей. Гораздо больший выигрыш может быть достигнут с помощью gzip.

Если вы используете какой-либо сторонний код, вам может потребоваться оставить свои комментарии к авторскому праву/лицензии неповрежденными, когда вы уменьшите. Люди часто забывают это делать. Возможно, вы захотите оставить свои собственные комментарии к авторскому праву.

Ответ 7

Да, уменьшение размера файла.

Ответ 8

Да. Уменьшение размера файла не только сокращает время загрузки, но и время синтаксического разбора, что очень полезно для некоторых браузеров (в частности, для IE6 с дьяволом).

Это, вероятно, требует переназначения переназначения.

Ответ 9

Я бы сделал разницу между оптимизацией, чтобы уменьшить размер файла и обфускацию с целью предотвращения (или, по крайней мере, жесткой) обратной инженерии. Кроме того, в Google, например, есть "компилятор", который расширяет JavaScript, чтобы включать в себя некоторую расширенную систему типов и т.п.; и этот расширенный код затем "скомпилирован" в обычный JavaScript. Очевидно, что имеет смысл создать этот сгенерированный код оптимизированным образом - нет необходимости в его обслуживании.

Ответ 10

Я бы поставил главную причину, по которой они делают это, чтобы уменьшить размер файла. Меньшие файлы ускоряют загрузку страницы.

Обфускация не так важна. Кроме того, это может заставить боль отлаживать, в зависимости от того, как вы это делаете.

Скорость - это все в поиске.

Ответ 11

И это заставило меня задуматься, есть ли какие-либо преимущества для обфускации вашего (X) HTML, CSS и Javascript, как это? Чтобы уменьшить размер файла, возможно?

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

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

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

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