Сжималка для JS/CSS
С первого захода я сразу нашел сжималку для css на регах, а js пропускал с входа на выход до лучших времен. Со второго захода лучшие времена не наступили: выбрать можно либо из монструозных вариантов типа как в этом списке - http://javascript.ru/optimize/javascript-compression - которые годятся только для design-time; либо из каких-то глюкавых поделок, некоторые из которых вроде работают, но только в некотором подмножестве вариантов исходника, как например я вытянул из метода minify у этого чувака https://github.com/bcosca/fatfree
Смысл в том чтобы вставлять js и css прямо в html без всяких линков на файлы. Простейший скрипт на php, который одинаково работает как с линка, так и с подачи параметра из другой модели (кодов) просто смотрит есть такой файл (с префиксом _min.) - если есть - читает его либо в браузер (если по линку), либо в страницу отдает. Если такого файла нет или его дата младше оригинала - берется оригинал, сжимается, записывается, читается и далее по тексту выше. То есть там две проверки и 1 чтение - если оригиналы не редактировать. Я изложил задачу целиком чтобы кто понимает подсказал может я вообще не в ту сторону поехал. Относительно куда уже поехал - нет ли у кого простого и безглючного компрессора для js и css. Чтобы пробелы, переносы, каменты - выкинуть, а все остальное - оставить как было. Функция того чувака с гитхаба работает нормально, но, предъявляет требования - хочет чтобы урлы были в кавычках, а гугля, например, отдает без кавычек в том css который скрипт получает через @import. В результате в сжатом файле остается src: url(http) и все. ЧТобы написать чуваку надо наверно регаться на гитхабе, а сам я в этом бисере ничерта не понимаю. |
это для js, подключаешь
<script type='text/javascript' src='/script.php'></script> <?php header('Content-type: text/javascript; charset: UTF-8'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 2592000) . ' GMT'); header("Content-Encoding: gzip"); header('Last-Modified: '.gmdate('D, d M Y H:i:s',filemtime(__FILE__)).' GMT'); ?> alert('Js'); аналогично для css подключаем <link rel="stylesheet" type="text/css" href="/css.php" /> <?php header('Content-type: text/css; charset: UTF-8'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 2592000) . ' GMT'); header("Content-Encoding: gzip"); header('Last-Modified: '.gmdate('D, d M Y H:i:s',filemtime(__FILE__)).' GMT'); ?> body{ color: red;} |
Балин! Зипуется автоматом на сервере, не в этом дело. Надо чтобы в хтмле было не так
border: 1px solid red; color:black; а вот так border:1px solid red;color:black; Кстати, в процессе поиска я конечно насмотрелся на вот такую запись: header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 2592000) . ' GMT'); и возник вопрос - а что она обозначает? Типа через 2592000 микросекунд надо будет взять с сервера, а не с кеша? На каком основании? Ну то есть что произойдет за эти 2592000 микросекунд такого, чего нельзя отождествить как таковое и немедленно подать команду обновить потому что так надо. В чем смысл времени хранения ресурса в кеше? |
Цитата:
и в чем проблема вручную сделать минифицированные версии http://compressorrater.thruhere.net/ http://closure-compiler.appspot.com/home c css также найдешь |
Вся эта мумификация относится к фазе дизайна, ясень-пень, но бегать сжимать куда-то после каждого чиха начальства - не самый лучший пень.
Собственно я даже эту самую функцию сделал единственным include в проекте, то есть никуда ее не профтыкал методом, а по-старинке из файла гружу когда потребность возникает, поскольку оно не для генерации страницы, а для генерации контента для генерации страницы. Короче, я понял что надо сделать - надо в кавычки заключить урл в импорте css'а и выкинуть рекурсию на сжатие импорта - в той функции. Все равно у меня не будет таких файлов. ЗЫ Самое прикольное что я скачал полдюжины скриптов и каждый был со своей проприетарной глюкавостью. То есть низким уровнем абстракции. Под себя подгонят - и вылаживают на публику. У Гуглей есть типа годный фреймфорк - но у меня тямы не хватит его интегрировать с нотепадом++ |
Опять ты начал писать, что не поймешь тебя
Цитата:
|
Зачем задается время смерти кеша? Что может произойти за это время, и чего точно не произойдет и почему он должен умереть именно в это время?
В чем практический смысл той самой строчки? Кстати, Хром - ну улеж, самый быстрый в мире, намертво цепляет кеш пилюя на все спецификации. С юзерской стороны это выглядит как х чего обновишь, а с дизайнерской - отсутствие событий load. |
Я к тому что кладут эти браузеры и их пейсатели на все эти строчки. У меня в ФФ лимит кеша - 100 Мб. Я и 1 Мб делал - ему пох, кеширует все как из пушки.
Ну вот, например про что вы пишите: Цитата:
Цитата:
Вот попробуйте отключить в Хроме кеширование и хронологию... ага. Как же он без кеша будет самым быстрым внатури? |
Цитата:
|
Это не смысл, а значение, типа что вижу то пою. Ладно, я в принципе знаю - это со статики тянется. Типа неделю дадим - там само обновится, если чо-та новое появится - увидят.
Короче, компрессор есть? |
Часовой пояс GMT +3, время: 08:24. |