...или ускоряем загрузку страниц.
Macik |
|
---|---|
Чтобы проще и глубже вникнуть в суть проблемы - зайдите на главную страницу cotonti.com и нажмите "Ctrl-U" (или иную комбинацию, которая позволит просмотреть исходный код страницы).
Смотрим секцию <head></head>. Ничего не смущает? Лично меня тут смущает и напрягает куча не нужных (особенно на главной) скриптов и загрузок. Давайте глянем: skins/sed-light/sed-light.css js/jquery.js js/base.js ./plugins/chili/js/jquery.chili.js ./plugins/chili/js/jquery.chili.toolbar.js ./plugins/chili/lang/jquery.chili.toolbar.ru.lang.js ./plugins/chili/skins/jquery.chili.toolbar.css <script type="text/javascript" > //<![CDATA[ [тут вырезана настройка Чили] //]]> ./plugins/tpltags/style.css ./plugins/slimbox/css/slimbox2.css ./plugins/slimbox/js/slimbox2.js ./plugins/slimbox/js/jquery.jScale.js <script type="text/javascript"> //<![CDATA[ [тут вырезана настройка СлимБокс] //]]> </script> ./plugins/tags/style.css На главной (в зависимости от ваших задач) необходимо только: skins/sed-light/sed-light.css - однозначно нужен js/jquery.js - в принципе нужен, особенно если на главной используются какие-либо дополнит. JQuery плагины js/base.js - 7 кб разнообразных специфических функций, возможно для главной можно и удалить ./plugins/tags/style.css - надо, т.к. Тэги используются практически повсеместно (хотя в таком случае резонно перенести в основной файл). SlimBox и его скрипты - удалил, т.к. в данном случае на главной он похоже не используется. Итого из ~ 30 строк кода нам реально нужна (для данной страницы) загрузка 4-5 файлов. А теперь представьте, что какой-нибудь плагин использует еще 2-3 файла JS/CSS и это тоже оказывается в шапке главной страницы. Резюмируя: описания в заголовке страницы сильно избыточны и должны меняться в зависимости от загружаемой страницы. У кого какие мысли? Я частично вышел из положения таким образом: 1. Подредактировал плагины Chili и markitup так, чтобы они загружались только на необходимых мне страницах - для меня это: chili - только на pages.php markitup - pages.php и forums.php (делается это правкой файлов *.header.php для каждого из плагинов) 2. Написал небольшой плагин автозагрузчик ресурсов для собственных плагинов. Работает следующим образом: плагин цепляется на header.main с Order=13 (чтобы выполнялся после остальных плагинов) и обрабатывает специальный подготовленный массив, в котором указаны какие файлы надо грузить и на каких страницах и по каким условиям. Как формируется этот массив? Да очень просто - для нужного плагина создается *.header.php, Цепляем header.main с Order=10 (обычно его и ставят). Далее в нем пишем примерно такой код (специально разнообразил вариантами):
$plug_name = 'slideshow'; // имя текущего подопытного плагина
if ($e==$plug_name) { // чтобы загрузка файла сработала только для этого плагина
$header_loads[] = array(
'file' => "./js/jquery.timers.js",
'type' => 'JS'
);
}
// загрузка сработает для стороннего плагина
$header_loads[] = array(
'part' => 'plug'
'code' => 'contactus', // сработает в плагине 'contactus'
'file' => "./js/jquery.slider.js",
'type' => 'JS'
);
// загрузка файла произойдет только в админке в разделе Утилиты IP Search
$header_loads[] = array(
'part' => 'tools'
'code' => 'ipsearch', // сработает в соотв. плагине
'file' => "./js/jquery.slider.js",
'type' => 'JS'
);
// Указанный файл будет подгружаться на всех страницах
$header_loads[] = array(
'part' => 'all'
'code' => '',
'file' => "./js/wonderfull.css",
'type' => 'CSS'
);
// Указанный файл будет подгружаться на странице с альясом "howto"
$header_loads[] = array(
'part' => 'param'
'code' => 'al=howto',
'file' => "./js/wonderfull.css",
'type' => 'CSS'
);
// загрузка файла произойдет на всех страницах сайта, кроме тех, когда определены перечисленные константы
$header_loads[] = array(
'part' => '!def'
'code' => 'SED_PLUG,SED_INDEX,SED_PFS,SED_POLLS,SED_USERS', // не грузимся в плагинах,главной,ПФС и т.д.
'file' => "./plugins/chili/js/jquery.chili.js",
'type' => 'JS'
);
В идеале - на любой странице сайта у нас загружаются только те ресурсы (JS/CSS), которые необходимы именно для этой страницы. Вот как-то так. Надеюсь не очень сумбурно. Если будет интерес могу поделиться плагином. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |