Показать сообщение отдельно
  #29 (permalink)  
Старый 20.10.2009, 15:23
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Kolyaj, ты говорил, что сделал штуку, которая собирает все скрипты в один, сжимает и отдает клиенту. Я тут думал на эту тему, скажи, насколько верно я мыслю:

1. обработчик собирает все js-файлы с какой-то папки, если он сам лежит в этой папке, то не нужно учить его, откуда ему все собирать.

2. неясно как определять порядок сборки файлов, можно создать массив в самом обработчике, но если я захочу добавить еще файл, то придется лезть в код и что-то менять, мне это совсем не нравится. Можно рядом положить xml и в нем определять порядок - не многим лучше. Еще вариант: в самих файлах первой строкой дописывать комментарий, в котором что-то вроде z-index-а. Вроде получше, только сами эти z-index-ы мне всегда не нравились, например, определил я порядок {5,6,7,8,9} , далее хочу добавить что-то между 6 и 7, придется искать всех у кого 7+ и увеличивать на 1 - это нудно очень.

3. обработчик собрал все что нужно в один файл, теперь нужно пропустить через какой-нибудь YUICompressor, но это долго, делать так при каждом запросе совсем нельзя, значит нужно где-то сохранить результат, например в all.min.js . При следующих запросах обработчик просто ищет all.min.js и отдает его клиенту, важно время последнего изменения проставлять одно и тоже (такое же как у all.min.js), что бы браузер тоже кэшировал.

4. изменил я какой-нибудь файл, как объяснить обработчику, что он должен заново сгенерировать all.min.js , простейший вариант вручную удалять all.min.js , но желательно обойтись без "вручную". Можно просматривать все js-файлы и если есть такой, у которого дата изменения позже чем у all.min.js , то обновлять all.min.js . Опять же медленно получится, но как лучше я не знаю.

5. не очень хорошо то, что all.min.js на виду лежит, куда бы его запрятать так, что бы совсем нигде не видеть? В asp хоть application есть, не ясно как быть с другими ЯП.

Последний раз редактировалось Riim, 20.10.2009 в 15:27.
Ответить с цитированием