Вы не зашли.
Страницы 1
Предложение следующее. Пользовательские плагины для своей работы добавляют те или иные CSS и JS файлы. В код страницы они включаются раздельно. Для оптимизации предлагаю:
1). Добавить функцию в ядро, для добавления локальных CSS и JS файлов вместо функции register_htmlvar. Новую, только для того, чтобы внутри существующей не тратить ресурсы на то, принадлежит файл локальному серверу или нет.
2). Добавить лишний параметр в эту функцию, в котором разрешать передавать плагинам инфу, можно их файлы скидывать в одну большую кучу или нет. Все валить в один файл нельзя как выяснилось. У меня возникли проблемы с lightbox. В функционале наверное стоит добавить новую глобальную переменную, которая будет хранить строку всех имен переданных файлов.
3). В index.php. Генерим из строки имен md5 хеш. Смотрим, есть такой файл или нет. Если есть, включаем его в код, если нет, код всех переданных файлов сваливаем в один, назначаем ему имя как md5 хеш переданных имен, сохраняем на диске и отдаем юзерам.
Не в сети
Добавить лишний параметр в эту функцию, в котором разрешать передавать плагинам инфу, можно их файлы скидывать в одну большую кучу или нет. Все валить в один файл нельзя как выяснилось
А как авторы плагинов будут узнавать вызовут/не вызовут ли их файлы конфликт с неопределенными скриптами/файлами цсс? Все будут говорить нельзя на всякий случай
Не в сети
Вы не поняли. Плагин либо ничего не передает в эту функцию и ему все равно, свалят его файлы в одну кучу или нет. Либо плагины типа голосовалки NG, либо те, которые подключают себе js файлы lightbox, вот они и говорят этой функции что их файлы игнорить и в кучу не валить.
P.S.
У себя на тестовом сайте попробовал данную схему. Правда еще прикручивал оптимизатор HTML,JS и CSS. CSS и HTML пакуются только шум стоит. Проблем особых не вылезло. С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями. Меньше время загрузки у юзверя. С JS возникли проблемы. Как уже писал с jquery и с lightbox и с голосовалкой NG. Если их JS коды свалить в одну кучу ничего не работает. К тому же, пока не разбирался, да думаю и не буду, lightbox зачем-то просит внутри себя указывать пути до него самого и до его файла CSS....
Не в сети
Вы не поняли. Плагин либо ничего не передает в эту функцию и ему все равно, свалят его файлы в одну кучу или нет. Либо плагины типа голосовалки NG, либо те, которые подключают себе js файлы lightbox, вот они и говорят этой функции что их файлы игнорить и в кучу не валить.
Вроде я про это и спрашивал, каков механизм определения автором разрешения или запрет на сваливание в кучу. Фреймворки на пихать в кучу, а остальное можно?
С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями.
А оно при каждой загрузке страницы что ли генерируется и не кешируется? Я так понимаю создал один раз, а потом сбрасывай кеш при изменениях.
Не в сети
Вообще функцию register_htmlvar стараюсь не использовать, т.к. для меня, на многих проектах более важно очередность вызова того или иного.
Чтобы избежать конфликты, лучше заюзать одну библиотеку (в связи с этим открыла тему в которой много уже отписалось))) и естественно, проводить отладку плагина при работе всех плагинов, это вызовет у разработчиков плагинов головную боль, но это плюс системе.
Но вообще, объединять css и яву я лично против, а объединять css и css, скрипты и скрипты, да, хотя тоже не всегда да, из-за приоритетов.
С одной стороны тратятся лишние ресурсы PHP для генерации общего файла, с другой стороны имеем 1 файл со всеми стилями. Меньше время загрузки у юзверя.
Тут спорный момент, т.к. в основном браузеры тянут только 2 файла, а производить отрисовку еще не загрузив, умеют не все браузеры. Посему иногда лучше/выгоднее/..... делать несколько файлов, т.к. при сильно большом юзер задолбается ждать когда ему что-то нарисуется на сайте.
Изменено Trashcka (2010-11-21 16:49:36)
Не в сети
Вроде я про это и спрашивал, каков механизм определения автором разрешения или запрет на сваливание в кучу. Фреймворки на пихать в кучу, а остальное можно?
Ответить не готов на вопрос. В ответ могу сказать только то, что в том-же drupal-е есть возможность все сваливать в одну кучу. Почему lightbox-у это так не нравится пока не понял.
А оно при каждой загрузке страницы что ли генерируется и не кешируется? Я так понимаю создал один раз, а потом сбрасывай кеш при изменениях.
Один раз генерится, о потом просто отдается
Но вообще, объединять css и яву я лично против
Нет. Объединяются css с css и js с js
Тут спорный момент, т.к. в основном браузеры тянут только 2 файла, а производить отрисовку еще не загрузив, умеют не все браузеры. Посему иногда лучше/выгоднее/..... делать несколько файлов, т.к. при сильно большом юзер задолбается ждать когда ему что-то нарисуется на сайте.
С другой стороны увеличивается количество соединений к серверу. А одно соединение времени отнимает больше чем передача информации. Кроме того, из полученных объединенных файлов скриптом можно выкинуть все комментарии, лишние переводы строк, пробелы и прочий мусор и сделать их меньше по размеру.
Не в сети
проводить отладку плагина при работе всех плагинов
Это невозможно в принципе, если только для дефолтного шаблона, что бессмысленно
Мне кажется тут вообще правильнее самому сжимать и объединять нужные файлы, так оно надежнее что ли, чем автомат… Полностью контролируешь этот процесс. Умный http://webo.in/ пилят уже довольно долго
Не в сети
С другой стороны увеличивается количество соединений к серверу. А одно соединение времени отнимает больше чем передача информации. Кроме того, из полученных объединенных файлов скриптом можно выкинуть все комментарии, лишние переводы строк, пробелы и прочий мусор и сделать их меньше по размеру.
Ну это только снимет нагрузку на сервер, но никак не поможет грузится сайту быстрее (визуально) у юзера, в особенности кто сидит на эксплорере и опере.
правильнее самому сжимать и объединять нужные файлы, так оно надежнее что ли, чем автомат…
Это и имелось в виду.
Не в сети
Кстати, не стоит забывать, что при правильной настройке WEB сервера все CSS/JS файлы загружаются всего один раз, а потом - берутся из кеша.
Так что заметная разница в скорости будет при первой загрузке сайта, дальше разницу заметить будет крайне сложно.
Не в сети
А если пользоваться глобальными репозитариями популярных библиотек, тогда и первая загрузка сайта будет проходить без особых задержек
http://api.yandex.ru/jslibs/
http://code.google.com/intl/ru/apis/loader/index.html
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Amarelius, об этом и вела речь, что давно пора подключить в движку какую-то библиотеку, и все строить на ней.
Сильно расширить возможности движка, можно будет много хорошего реализовать в той же админке, не будет левой явы, а все будут стараться писать исходя из возможностей подключенной библиотеки и т.д.
Изменено Trashcka (2010-11-21 19:58:20)
Не в сети
Trashcka, с первых дней работы с движком пользую jquery, для построения пользовательских интерфейсов самое оно. А по поводу громоздкости библиотеки, это ерунда, периодически работаю на dialup и никакого дискомфорта.
Считаю, что если и подключать что-то, то только jquery.
Для сжатия своих скриптов использую yuicompressor
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Trashcka, уговорила.
Согласен с использованием jQuery для админки, но делать его обязательным для всего двига не готов
Сразу вопрос: есть красивый datapicker для jQuery (тут), как его подключить?
В комплект к нему ещё и старая версия jQuery подцеплена. Помогите кто-нибудь отцепить старую версию jQuery и сделать понятную сборочку
p.s. А ещё не помешает ликбез по работе с плагинами jQuery.
Не в сети
vitaly, думаю лучше использовать стандартный набор плагинов, он всегда развивается и актуален http://jqueryui.com/. К тому же у них там много, что может пригодится в админке.
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Не в сети
Страницы 1