Pull to refresh

Comments 13

Кстати, если обратить внимание на папку snippets, можно увидеть js файлы. Знатоки могут догадаться что это снипеты, которые используются в аптане. Я использую прототайп.джс и написал себе удобные сниппеты, назначение которых можно понять из названий. Если будут желающие могу выложить их для свободного использования.
Лично я пользуюсь PHP обфускатором, который нашел где-то на sourceforge... Мне лениво каждый раз запускать виндовую прогу при выкладке кода. Надо этот процесс максимально автоматизировать...

CSS обфускаторов тоже хватает... CSSTidy например.

ИМХО проще юзать скриптовые компиляторы
Мне не нужен постоянный билд, для отладки это не самое удобное. Билд нужен в случае если ты делаешь релиз. Насчет компиляторов - если есть ссылки на что то хорошое, пожалуйста, предоставьте.
Не уверен, что сжатие сможет уменьшить количество запросов :)

Конкатентацию тоже нужно использовать осторожно. Если возможных вариантов сборки будет больше чем исходных файлов, то за счет неоптимального использования кэша это может наоборот всё испортить.
посмотрите, как решают эту проблему jQuery и Prototype
первая для этого дела использует apache ant
вторая - ruby rakefiles
Впервые слышу о apache ant. Надо будет почитать. Спасибо
На самом деле существует 3 задачи:
  1. Сборка js и css файлов
  2. Кэширование js и css файлов
  3. Отладка js скриптов

JS Builder не решает третью задачу, точнее превращает её решение в проблему, а вторая задача полностью ложится на плечи разработчиков (т.е. это не автоматическое решение).

Мы сделали по своему. И я так думаю, что мы справились со всеми тремя задачами на 100%. Вот ссылка:
http://www.moskva.com/jas/ver,1.1.js;hab…
  1. FrontEnd (nginx) настроен так, что если файл есть, то он его и отдаёт + в заголовках посылает броузеру команду "закэшировать файл навсегда" + он может сжимать файлы (у нас правда они не сжимаются - были какие-то проблемы с IE6)
  2. Если файла нет, то nginx передаёт управление в BackEnd (Apache+PHP). PHP анализирует $REQUEST_URI и соединяет файлы /ver/1.1.js и /habr/1.js и записывает из на диск чтобы при следущем запросе его подхватил nginx
  3. Если нам понадобиться поменять файл /habr/1.js , то мы изменим URL к файлу на http://www.moskva.com/jas/ver,1.2.js;hab…
  4. Если нужно подцепить сразу несколько файлов, то на FTP кладётся специальный файлик со списком нужных файлов. Например, http://www.moskva.com/jas/ver,1.1.js;hab… сформирован из 2-х файлов.(/habr/1.js и /habr/2.js)
  5. Для отладки к URL`у добавляется специальный параметр - он даёт команду PHP "не записывать результат на диск"

В процессе разработки никто не жаловался - всем нашим нравится такая система =)

ЗЫЖ Наша реализация - это переделка вот этого решения <- так как там сделано делать нельзя =)
Цитата 1.>Если файла нет, то nginx передаёт управление в BackEnd (Apache+PHP). PHP анализирует $REQUEST_URI и соединяет файлы /ver/1.1.js и /habr/1.js и...
Цитата 2.>Если нужно подцепить сразу несколько файлов, то на FTP кладётся специальный файлик...

Вопрос: разве "цитата 1" не есть пример того как подцепить несколько файлов (/ver/1.1.js и /habr/1.js)? зачем способ со "специальным файликом" на FTP?

Цитата 3>Если нам понадобиться поменять файл /habr/1.js , то мы изменим URL к файлу на...

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

Это просто удобно (по крайней мере мне при работе в FAR-е). Сейчас посчитал: в моём текущем проекте 26 спец.файла, 145 файлов js и 28 css. Если использовать первый способ, то они все просто не уберутся в GET запрос, не нужно менять весь путь к файлу, если в проект добавляется сразу много файлов, да и просто для разделения сущностей: в один каталог кладём ядро, в другой - абстрактные классы, в третий - реализации абстрактных классов.

где изменим?

В шаблонах. В нашей админке мы просто меняем одну константу и все файлы для всех пользователей становятся "как будто бы новыми"
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.