04.10.2014, 16:38
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сжималка для 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) и все. ЧТобы написать чуваку надо наверно регаться на гитхабе, а сам я в этом бисере ничерта не понимаю.
|
|
04.10.2014, 16:51
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
это для 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;}
|
|
04.10.2014, 16:57
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Балин! Зипуется автоматом на сервере, не в этом дело. Надо чтобы в хтмле было не так
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 микросекунд такого, чего нельзя отождествить как таковое и немедленно подать команду обновить потому что так надо.
В чем смысл времени хранения ресурса в кеше?
Последний раз редактировалось kostyanet, 04.10.2014 в 17:03.
|
|
04.10.2014, 17:20
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Вся эта мумификация относится к фазе дизайна, ясень-пень, но бегать сжимать куда-то после каждого чиха начальства - не самый лучший пень.
Собственно я даже эту самую функцию сделал единственным include в проекте, то есть никуда ее не профтыкал методом, а по-старинке из файла гружу когда потребность возникает, поскольку оно не для генерации страницы, а для генерации контента для генерации страницы.
Короче, я понял что надо сделать - надо в кавычки заключить урл в импорте css'а и выкинуть рекурсию на сжатие импорта - в той функции. Все равно у меня не будет таких файлов.
ЗЫ Самое прикольное что я скачал полдюжины скриптов и каждый был со своей проприетарной глюкавостью. То есть низким уровнем абстракции. Под себя подгонят - и вылаживают на публику.
У Гуглей есть типа годный фреймфорк - но у меня тямы не хватит его интегрировать с нотепадом++
Последний раз редактировалось kostyanet, 04.10.2014 в 17:23.
|
|
04.10.2014, 17:27
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Опять ты начал писать, что не поймешь тебя
Сообщение от kostyanet
|
, чего нельзя отождествить как таковое и немедленно подать команду обновить потому что так надо
|
это другая уже технология <html manifest="cache.manifest">
|
|
04.10.2014, 17:29
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Зачем задается время смерти кеша? Что может произойти за это время, и чего точно не произойдет и почему он должен умереть именно в это время?
В чем практический смысл той самой строчки?
Кстати, Хром - ну улеж, самый быстрый в мире, намертво цепляет кеш пилюя на все спецификации. С юзерской стороны это выглядит как х чего обновишь, а с дизайнерской - отсутствие событий load.
|
|
04.10.2014, 17:34
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Я к тому что кладут эти браузеры и их пейсатели на все эти строчки. У меня в ФФ лимит кеша - 100 Мб. Я и 1 Мб делал - ему пох, кеширует все как из пушки.
Ну вот, например про что вы пишите:
Цитата:
|
The manifest attribute should be included on every page of your web application that you want cached.
|
Инче, типа, будешь грузить запросами весь интернет... Как бы не так.
Цитата:
|
The browser does not cache a page if it does not contain the manifest attribute
|
Ржунимагу
Вот попробуйте отключить в Хроме кеширование и хронологию... ага. Как же он без кеша будет самым быстрым внатури?
Последний раз редактировалось kostyanet, 04.10.2014 в 17:37.
|
|
04.10.2014, 17:35
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Сообщение от kostyanet
|
В чем практический смысл той самой строчки?
|
На протяжении какого времени не запрашивать файл с сервера использовать закешированный броузером
|
|
04.10.2014, 17:41
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Это не смысл, а значение, типа что вижу то пою. Ладно, я в принципе знаю - это со статики тянется. Типа неделю дадим - там само обновится, если чо-та новое появится - увидят.
Короче, компрессор есть?
|
|
|
|