Такой пример. На странице товара используются различные свистелки-перделки на jquery+соответствующие стили к ним . Притом мало того что на странице ноды, так ещё по определённым правилам (скажем, если больше 3-х картинок выводится - одна перделка, если меньше - другая).
Я вот тут определяю подгрузку тех или иных плагинов и конфинурации к ним в template.php по условиям, но вот подумалось: если у меня включена оптимизация стилей и явы, то при каждом изменении каких-то условий будут заново перегенерированы объединённые файлы css и js, соответственно будет затрачено процессорное время на это. Стоит оно того вообще? По идее, если подключить "жёстко" все плагины в .info, сгенерированные объединённые стили и ява закешируется браузером после первой загрузки. Цена вопроса - десяток кб явы и стилей.
Кто что думает?
Комментарии
По мне так лучше одним файлом все сразу кинуть. И проще, и сервак разгружен, а для пользователя не особо критично. Он что один файл закэширует, что несколько, разве что памяти и процессора страничка побольше скушает, но тут настолько мизерное это "побольше" что юзверь и не заметит.
Смотря насколько крупный и загруженный проект. Имхо:
Наиболее правильный вариант - жать js/css ручками, в несколько файликов (так чтобы отдавать их раздельно), включать кэширование, но не включать сжатие css/js и через skinr или ручками в template.php прописывать когда что отдавать. По логике - общие стили/фреймворки - сразу, js плагинов + css мелких элементов - только там где они используются. Если это нечто небольшое с 500-1000 униками, то можно и не заморачиваться.
Общая логика - любая страница, на которую придет пользователь по ссылке извне, должна содержать только тот css/js, который ей необходим, ничего лишнего. Опять же - такой подход увеличивает время разработки ~ увеличивает стоимость - не всегда это надо.
посжимать js файлы плагинов (еще лучше привести их в вид *.min.js)
с ксс разбивание даст обратный результат (насо смотреть разверы, ибо не понятно)
дело в том, что друпал сам закеширует если надо генерируемый единый ксс файл из кучи ему подобных, но при прогрузке кучи маленьких файлов времени на подгрузку уйдет больше, чем на прогрузку одного, но объеденяющем. Если же подгружаемые файлы ксс средние/большие, то лучше по отдельности, при чем через _init().. но тут прийдется писать обработчик, который будет определять - используется ли тут этот или ииной модуль или нет. а это геммор. лишний. вы выграете несколько секунд при прогрузке и какуюто скорость при обработке ahah, но если где-то будет косяк - косячить будет хорошо =0)) гг
но лучше разделять по модулям независимые ксс (как у джей квери плагинов) и ксс темы.
ибо когда все в куче = это равно "каша". а это плохо.
Вообщем, я порешил так:
всю яву и стили, подключаемые по условиям пожать по отдельности вручную и запретить сливать в общую кучу. Имеем пару лишних http запросов, но это пустяки
Пример отдельно подгружаемого файла явы
<?php
drupal_add_js
(drupal_get_path('theme', 'название_темы')
. '/js/название_файла_отщепенца.js',
'theme', 'header', FALSE, TRUE, FALSE); ?>
Думаю, самый лучший вариант