Сжатие PHP или Perl JavaScript для JQuery - PullRequest
1 голос
/ 09 марта 2010

Кто-нибудь знает PHP-скрипты, которые хорошо сжимают jQuery?

Ответы [ 5 ]

1 голос
/ 10 марта 2010

JSMin - это класс PHP, который, как мы обнаружили, хорошо работает для минимизации нашего JS. Minify - это еще один PHP-проект, который был построен на JSMin и выглядит довольно интересно (объединяет несколько файлов, обрабатывает локальное кэширование и т. Д.), Но у меня еще не было возможности протестировать его, поэтому не могу поручиться насколько хорошо это работает.

В зависимости от того, насколько сложным вы хотите, чтобы ваша кодовая база была, у вас есть несколько разных вариантов того, когда и как вы используете минификатор:

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

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

Проблема с этим подходом состоит в том, что может быть очень вычислительно дорого минимизировать ваш javascript при каждом отдельном запросе.

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

Существует несколько доступных пакетов - в зависимости от выбора веб-сервера - которые позаботятся обо всем за вас ( Пример Apache ), или, если вы действительно хотите, вы можете свернуть свой собственное решение. Вероятно, не самая лучшая идея, но не вредно, если вы попробуете это как домашний проект!

На уровне псевдокода он работает в основном следующим образом:

www.example.com / js / jsm.php? Js = foo.js (этот URL-адрес можно сделать красивее, переписав URL-адрес)

// jsm.php
// On-demand JS minification
// Store result to local cache to reduce overhead from 
// multiple requests

// JSMin class
require( 'jsmin.php' );

// Has this file already been cached and put in cache?
// ($cache could be anything from local file cache, memcache, etc)
if( !$cache->checkFor($requestedFilename) )  
{
    // No.. minimise and put in cache
    $minifiedContents = JSMin::minimiseFile( 
                             file_get_content( $requestedFilename ) 
                                           );
    $cache->putValue($requestedFilename, $minifiedContents);
}

// Now serve minimised js from cache
echo $cache->getValue($requestedFilename);
1 голос
/ 09 марта 2010

Служба компилятора Google Closure для всех ваших нужд по минимизации JavaScript!

0 голосов
/ 09 марта 2010

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

Либо используйте один из основных файлов JAR Java для запуска всего кода через ( YUI Compressor , Dojo Shrinksafe , либо Google Closure Compiler ), либо используйте веб-сервис Google Closure .

0 голосов
/ 09 марта 2010

JS Packer Дина Эдвардса поставляется на PHP / Perl.

http://dean.edwards.name/download/#packer
0 голосов
/ 09 марта 2010

Если вы ищете Javascript Minifier, работающий на PHP, проверьте это: http://github.com/rgrove/jsmin-php/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...