Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2014, 16:38
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 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) и все. ЧТобы написать чуваку надо наверно регаться на гитхабе, а сам я в этом бисере ничерта не понимаю.
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2014, 16:51
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 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;}
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2014, 16:57
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2014, 17:09
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от kostyanet
fatfree
у них есть своя группа в Google, напиши им туда
и в чем проблема вручную сделать минифицированные версии
http://compressorrater.thruhere.net/
http://closure-compiler.appspot.com/home
c css также найдешь
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2014, 17:20
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

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

Собственно я даже эту самую функцию сделал единственным include в проекте, то есть никуда ее не профтыкал методом, а по-старинке из файла гружу когда потребность возникает, поскольку оно не для генерации страницы, а для генерации контента для генерации страницы.

Короче, я понял что надо сделать - надо в кавычки заключить урл в импорте css'а и выкинуть рекурсию на сжатие импорта - в той функции. Все равно у меня не будет таких файлов.

ЗЫ Самое прикольное что я скачал полдюжины скриптов и каждый был со своей проприетарной глюкавостью. То есть низким уровнем абстракции. Под себя подгонят - и вылаживают на публику.

У Гуглей есть типа годный фреймфорк - но у меня тямы не хватит его интегрировать с нотепадом++

Последний раз редактировалось kostyanet, 04.10.2014 в 17:23.
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2014, 17:27
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Опять ты начал писать, что не поймешь тебя
Сообщение от kostyanet
, чего нельзя отождествить как таковое и немедленно подать команду обновить потому что так надо
это другая уже технология <html manifest="cache.manifest">
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2014, 17:29
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Зачем задается время смерти кеша? Что может произойти за это время, и чего точно не произойдет и почему он должен умереть именно в это время?

В чем практический смысл той самой строчки?

Кстати, Хром - ну улеж, самый быстрый в мире, намертво цепляет кеш пилюя на все спецификации. С юзерской стороны это выглядит как х чего обновишь, а с дизайнерской - отсутствие событий load.
Ответить с цитированием
  #8 (permalink)  
Старый 04.10.2014, 17:34
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 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.
Ответить с цитированием
  #9 (permalink)  
Старый 04.10.2014, 17:35
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от kostyanet
В чем практический смысл той самой строчки?
На протяжении какого времени не запрашивать файл с сервера использовать закешированный броузером
Ответить с цитированием
  #10 (permalink)  
Старый 04.10.2014, 17:41
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Это не смысл, а значение, типа что вижу то пою. Ладно, я в принципе знаю - это со статики тянется. Типа неделю дадим - там само обновится, если чо-та новое появится - увидят.

Короче, компрессор есть?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag-and-drop и position:fixed dotwatt Элементы интерфейса 5 05.12.2012 08:44
IDE для Java Script constant Библиотеки/Тулкиты/Фреймворки 0 27.09.2012 09:31
Модуль для web-to-print проекта Anton2507 Работа 0 29.07.2012 11:35
добавление стилей для множества элементов ??? Общие вопросы Javascript 7 14.06.2012 01:50
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48