Main menu

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

Итак, для начала, если мы хотим максимально повысить производительность сайта использующего компонент K2 и при этом снизить нагрузку нам придется отказаться от некоторых функций компонента. К сожалению придется этим пожертвовать, ради высшей цели :) 

 
Во первых отказываемся от использования модуля K2 Tools, который явно требует доработки во всех его направлениях. Особенно пытайтесь избежать его использования в качестве календаря и меню. Использование данных функций повысит запросы к БД аж до ~40, что совсем не приемлимо... 
 
Во вторых нужно отказаться от использования пункта меню вывода категории K2 с надстройкой "подтягивания" подкатегорий выводимой категории(материалы из дочерних категорий).. Конечно, это было бы весьма удобно использовать, особенно на сайтах со сложной структурой да и понизит юзабилити сайта, однако значительно снизит нагрузку в виде 50-70 запросов к БД. Поэтому в пункте материалы из дочерних категорий выбираем нет. И в меню добавляем подпункты меню в виде подкатегорий (для красивых ссылок).
 
В третьих, в настройках категории нам придется отказаться от опции "Наследовать параметры опций из категории". Опять же эта, вроде бы очень удобная функция, задача которой облегчить жизнь пользователям, создает огромное количество запросов к БД, вместо нужного одного запроса. Таким образом, если у нас на странице 20 категорий, у которых включена опция наследования - имеем дополнительно 20 запросов.Сейчас же включение этой опции приводит к тому, что запрос параметров родительской категории происходит всякий раз при выводе материалов из дочерней или при выводе списка категорий.
 
В четвертых - используем только необходимые функции. Я вообще советую отказаться от использования стандартных комментариев K2, хотя использовать JComments так же не рекомендую. Лично Я больше предпочитаю использовать социальные комментарии, которые сейчас довольно распространены. Если же вы все таки используете стандартные комментарии K2, то отключите вывод кнопки комментариев. Так же в списке категорий или в самой категории советую отключать такие функции, как социальные закладки, вывод тегов, рейтинг, вывод автора, кнопки печати и эл.почты. В общем чем меньше будет функций запущено, тем будет меньше запросов, тем будет меньше нагрузка.

Здесь же хочу написать о загрузке изображений материалов компонента K2. Сам компонент загружает оригинальное изображение и сохраняет его в 5 вариациях - очень большое, большое, среднее, маленькое, очень маленькое. Зачастую нам нужно максимум три варианта изображений. Я пользуюсь только большими средними и маленькими изображениями. Для того, чтобы запретить создание лишних изображений нужно закомментировать строчку
$handle->Process($savepath);
у ненужного нам параметра сохранения изображения в файле /administrator/components/com_k2/models/item.php Чтобы запретить увеличение изображения в материале, нужно в файле components\com_k2\templates\default\item.php закомментировать строчку