it-swarm.com.ru

jQuery скомпилирован с помощью Google Closure Compiler

Кто-нибудь скомпилировал jQuery против недавно выпущенного Closure компилятора Google?

Сообщалось об огромной экономии в размере кода. Мне интересно, какая выгода, если jQuery был скомпилирован с ним.

38
Ted

Джон Резиг сообщил об ошибке в рекурсивных функциях, когда он пытался скомпилировать ночной jQuery 1.4, поэтому нужно разобраться с некоторыми изюминками. Я бы не использовал jQuery, скомпилированный с помощью Closure Compiler, не убедившись, что он проходит тестовый стенд jQuery.

http://code.google.com/p/closure-compiler/issues/detail?id=1&can=1#c2

26
Nosredna

Я пробовал с jQuery jQuery 1.3.2

jQuery-1.3.2.min.js     57254 Bytes
jQuery closure compiler 49730 Bytes
-----------------------------------
Reduced by               7524 Bytes
Saved 13.31% off the original size
Saved 10.87% off the gzipped size

Прибыль ~ 7 КБ

Но он также сообщает 15 предупреждений, и я не проверял, работает ли он до сих пор

11
jitter

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

7
Steve Hanov

С отключенной функцией ADVANCED_OPTIMIZATIONS:

  • jquery-1.3.2.min.js: 57254 байта
  • jquery-1.3.2.closure.js 55346 байт (-3,4%)
  • jquery-1.3.2.min.js.gz: 19680 байт
  • jquery-1.3.2.closure.js.gz: 18666 байт (-5,2%)

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

6
hobbs

Начиная с jQuery 1.4, Google Closure Compiler используется как метод минимизации по умолчанию для выпусков jQuery. Однако jQuery использует только настройки SIMPLE_OPTIMIZATIONS. Команда jQuery не планирует поддерживать ADVANCED_OPTIMIZATIONS .

5
mndrix

Из любопытства я собрал тест SlickSpeed ​​с последними библиотеками Prototype и jQuery, сокращенными с помощью YUI и Closure. Вы можете запустить тесты здесь .

Как уже отмечали другие, компиляция с ADVANCED_OPT не работает, но если кто-то захочет выполнить эту работу, я буду рад добавить результаты в тест SlickSpeed.

2
Jauder Ho

Разве Closure просто не сворачивает и не переименовывает переменные? У jQuery уже есть версия .min. Сокращение с замыканием снова, вероятно, будет минимально полезным и потенциально опасным. 

Правка: я только что сделал это.

Compilation was a success!

Original Size:  55.91KB (19.28KB gzipped)
Compiled Size:  54.05KB (18.28KB gzipped)
Saved 3.34% off the original size (5.18% off the gzipped size)

Это поверх уже добытой версии. Здесь есть демо: http://closure-compiler.appspot.com/home

1
Jourkey

Я использовал Closure (с ADVANCED_OPTIMIZATIONS), чтобы сжать код JavaScript для одностраничного сайта, который я размещаю, и увидел значительную экономию по сравнению с YUI Compressor. Поэтому я начал изучать jQuery для этого сайта, поскольку он, конечно, не использует более полную библиотеку jQuery.

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

Хорошая новость заключается в том, что Джон Резиг уже экспериментирует с Closure. Я подозреваю, что мы увидим новые выпуски обоих, которые совместимы в ближайшем будущем. 

1
Scott Johnson

Я попытался с их онлайн-компилятор , он работает хорошо.

0
Roch