Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-11-21 16:17:16

vitaliy1978
Участник
Зарегистрирован: 2010-05-11
Сообщений: 45
Рейтинг :   
Сайт

Объединение CSS и JS файлов

Предложение следующее. Пользовательские плагины для своей работы добавляют те или иные CSS и JS файлы. В код страницы они включаются раздельно. Для оптимизации предлагаю:
1). Добавить функцию в ядро, для добавления локальных CSS и JS файлов вместо функции register_htmlvar. Новую, только для того, чтобы внутри существующей не тратить ресурсы на то, принадлежит файл локальному серверу или нет.
2). Добавить лишний параметр в эту функцию, в котором разрешать передавать плагинам инфу, можно их файлы скидывать в одну большую кучу или нет. Все валить в один файл нельзя как выяснилось. У меня возникли проблемы с lightbox. В функционале наверное стоит добавить новую глобальную переменную, которая будет хранить строку всех имен переданных файлов.
3). В index.php. Генерим из строки имен md5 хеш. Смотрим, есть такой файл или нет. Если есть, включаем его в код, если нет, код всех переданных файлов сваливаем в один, назначаем ему имя как md5 хеш переданных имен, сохраняем на диске и отдаем юзерам.

Не в сети

#2 2010-11-21 16:28:27

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Объединение CSS и JS файлов

vitaliy1978 пишет:

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

А как авторы плагинов будут узнавать вызовут/не вызовут ли их файлы конфликт с неопределенными скриптами/файлами цсс? Все будут говорить нельзя на всякий случай

Не в сети

#3 2010-11-21 16:36:03

vitaliy1978
Участник
Зарегистрирован: 2010-05-11
Сообщений: 45
Рейтинг :   
Сайт

Re: Объединение CSS и JS файлов

Вы не поняли. Плагин либо ничего не передает в эту функцию и ему все равно, свалят его файлы в одну кучу или нет. Либо плагины типа голосовалки NG, либо те, которые подключают себе js файлы lightbox, вот они и говорят этой функции что их файлы игнорить и в кучу не валить.

P.S.
У себя на тестовом сайте попробовал данную схему. Правда еще прикручивал оптимизатор HTML,JS и CSS. CSS и HTML пакуются только шум стоит. Проблем особых не вылезло. С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями. Меньше время загрузки у юзверя. С JS возникли проблемы. Как уже писал с jquery и с lightbox и с голосовалкой NG. Если их JS коды свалить в одну кучу ничего не работает. К тому же, пока не разбирался, да думаю и не буду, lightbox зачем-то просит внутри себя указывать пути до него самого и до его файла CSS....

Не в сети

#4 2010-11-21 16:41:34

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Объединение CSS и JS файлов

vitaliy1978 пишет:

Вы не поняли. Плагин либо ничего не передает в эту функцию и ему все равно, свалят его файлы в одну кучу или нет. Либо плагины типа голосовалки NG, либо те, которые подключают себе js файлы lightbox, вот они и говорят этой функции что их файлы игнорить и в кучу не валить.

Вроде я про это и спрашивал, каков механизм определения автором разрешения или запрет на сваливание в кучу. Фреймворки на пихать в кучу, а остальное можно?

vitaliy1978 пишет:

С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями.

А оно при каждой загрузке страницы что ли генерируется и не кешируется? Я так понимаю создал один раз, а потом сбрасывай кеш при изменениях.

Не в сети

#5 2010-11-21 16:43:26

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Объединение CSS и JS файлов

Вообще функцию register_htmlvar стараюсь не использовать, т.к. для меня, на многих проектах более важно очередность вызова того или иного.

Чтобы избежать конфликты, лучше заюзать одну библиотеку (в связи с этим открыла тему в которой много уже отписалось))) и естественно, проводить отладку плагина при работе всех плагинов, это вызовет у разработчиков плагинов головную боль, но это плюс системе.

Но вообще, объединять css и яву я лично против, а объединять css и css, скрипты и скрипты, да, хотя тоже не всегда да, из-за приоритетов.

vitaliy1978 пишет:

С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями. Меньше время загрузки у юзверя.

Тут спорный момент, т.к. в основном браузеры тянут только 2 файла, а производить отрисовку еще не загрузив, умеют не все браузеры. Посему иногда лучше/выгоднее/..... делать несколько файлов, т.к. при сильно большом юзер задолбается ждать когда ему что-то нарисуется на сайте.

Изменено Trashcka (2010-11-21 16:49:36)

Не в сети

#6 2010-11-21 16:55:19

vitaliy1978
Участник
Зарегистрирован: 2010-05-11
Сообщений: 45
Рейтинг :   
Сайт

Re: Объединение CSS и JS файлов

Вроде я про это и спрашивал, каков механизм определения автором разрешения или запрет на сваливание в кучу. Фреймворки на пихать в кучу, а остальное можно?

Ответить не готов на вопрос. В ответ могу сказать только то, что в том-же drupal-е есть возможность все сваливать в одну кучу. Почему lightbox-у это так не нравится пока не понял.

А оно при каждой загрузке страницы что ли генерируется и не кешируется? Я так понимаю создал один раз, а потом сбрасывай кеш при изменениях.

Один раз генерится, о потом просто отдается

Но вообще, объединять css и яву я лично против

Нет. Объединяются css с css и js с js

Тут спорный момент, т.к. в основном браузеры тянут только 2 файла, а производить отрисовку еще не загрузив, умеют не все браузеры. Посему иногда лучше/выгоднее/..... делать несколько файлов, т.к. при сильно большом юзер задолбается ждать когда ему что-то нарисуется на сайте.

С другой стороны увеличивается количество соединений к серверу. А одно соединение времени отнимает больше чем передача информации. Кроме того, из полученных объединенных файлов скриптом можно выкинуть все комментарии, лишние переводы строк, пробелы и прочий мусор и сделать их меньше по размеру.

Не в сети

#7 2010-11-21 17:59:51

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Объединение CSS и JS файлов

Trashcka пишет:

проводить отладку плагина при работе всех плагинов

Это невозможно в принципе, если только для дефолтного шаблона, что бессмысленно smile

Мне кажется тут вообще правильнее самому сжимать и объединять нужные файлы, так оно надежнее что ли, чем автомат… Полностью контролируешь этот процесс. Умный http://webo.in/ пилят уже довольно долго

Не в сети

#8 2010-11-21 18:04:38

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Объединение CSS и JS файлов

vitaliy1978 пишет:

С другой стороны увеличивается количество соединений к серверу. А одно соединение времени отнимает больше чем передача информации. Кроме того, из полученных объединенных файлов скриптом можно выкинуть все комментарии, лишние переводы строк, пробелы и прочий мусор и сделать их меньше по размеру.

Ну это только снимет нагрузку на сервер, но никак не поможет грузится сайту быстрее (визуально) у юзера, в особенности кто сидит на эксплорере и опере.

Wolverine пишет:

правильнее самому сжимать и объединять нужные файлы, так оно надежнее что ли, чем автомат…

Это и имелось в виду.

Не в сети

#9 2010-11-21 18:36:57

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Объединение CSS и JS файлов

Кстати, не стоит забывать, что при правильной настройке WEB сервера все CSS/JS файлы загружаются всего один раз, а потом - берутся из кеша.
Так что заметная разница в скорости будет при первой загрузке сайта, дальше разницу заметить будет крайне сложно.

Не в сети

#10 2010-11-21 19:14:17

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: Объединение CSS и JS файлов

А если пользоваться глобальными репозитариями популярных библиотек, тогда и первая загрузка сайта будет проходить без особых задержек
http://api.yandex.ru/jslibs/
http://code.google.com/intl/ru/apis/loader/index.html


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#11 2010-11-21 19:56:00

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Объединение CSS и JS файлов

Amarelius, об этом и вела речь, что давно пора подключить в движку какую-то библиотеку, и все строить на ней.

Сильно расширить возможности движка, можно будет много хорошего реализовать в той же админке, не будет левой явы, а все будут стараться писать исходя из возможностей подключенной библиотеки и т.д.

Изменено Trashcka (2010-11-21 19:58:20)

Не в сети

#12 2010-11-21 20:34:42

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: Объединение CSS и JS файлов

Trashcka, с первых дней работы с движком пользую jquery, для построения пользовательских интерфейсов самое оно. А по поводу громоздкости библиотеки, это ерунда, периодически работаю на dialup и никакого дискомфорта.

Считаю, что если и подключать что-то, то только jquery.

Для сжатия своих скриптов использую yuicompressor


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#13 2010-11-21 20:59:59

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Объединение CSS и JS файлов

Ну раз все за )) давайте Виталика убеждать в полезности jquery для движка )))

Не в сети

#14 2010-11-22 04:21:16

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Объединение CSS и JS файлов

Trashcka, уговорила.
Согласен с использованием jQuery для админки, но делать его обязательным для всего двига не готов smile

Сразу вопрос: есть красивый datapicker для jQuery (тут), как его подключить?
В комплект к нему ещё и старая версия jQuery подцеплена. Помогите кто-нибудь отцепить старую версию jQuery и сделать понятную сборочку smile

p.s. А ещё не помешает ликбез по работе с плагинами jQuery.

Не в сети

#15 2010-11-22 04:51:57

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: Объединение CSS и JS файлов

vitaly, думаю лучше использовать стандартный набор плагинов, он всегда развивается и актуален http://jqueryui.com/. К тому же у них там много, что может пригодится в админке.


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#16 2010-11-22 11:17:44

KhadeR
Участник
Зарегистрирован: 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: Объединение CSS и JS файлов

vitaly, не понимаю, почему для всего двига нельзя, ведь в большинстве случаев библиотека уже загружена практически на любом компьютере, если ее загружать через гугл, яндекс или мелкософт

Не в сети

#17 2010-11-22 13:46:15

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Объединение CSS и JS файлов

Ты сам в плагине решаешь какие библиотеки использовать, никто же не запрещает сейчас использовать jQuery

Не в сети

Подвал раздела

Работает на FluxBB