-2.83
Рейтинг
0.97
Сила

Full Cache. Простое Frontend кеширование без Nginx

Цель. Снизить нагрузку при большом потоке незарегистрированных пользователей.
Причины нагрузки.
1) Даже при включении бэкенд кеша любого вида(memcache, file, xcache) движок все же ест память, так как структуру данных он выстраивает в любом случае. При большом количестве плагинов растет количество классов и экземпляров этих классов, которые загружаются в память. В данном случае использование бэкенд кеша увеличивает скорость работы за счет кеширования результатов запросов в базу данных. Но размер потребляемой памяти остается тот же. Например, у меня страница топика ела 19 Мб, а список — 30мБ. При этом частично помогает, например, использование ссылок на объекты с помощью & при переборе, а не их копий. Но все же это крошки.
2) Даже при полном кеше БД все же выполняются несколько запросов, таких как получение данных о сессии или update таблицы просмотров. Под нагрузкой и при использовании InnoDb базы «update запрос» может очень сильно тормозить.
Ресурсы и методы
Собственно смысл прост. Он состоит в том, чтобы один раз генерировать страницу, а потом отдавать ее сразу.
Проверять на существование и отдавать кеш надо будет перед запуском движка, что разгрузит потребляемую память.

Читать дальше →

Боремся за место на диске

На выходных досмотрелся что движок не удаляет загруженные на сервер оригиналы картинок в фотосетах, аватарках пользователя и аватарках блогов. Учитывая что по умолчанию для фотосета выставлено 6Мб на картинку и 30 картинок для загрузки это будет 6 х 30 = 180Мб на один фотосет это конечно ничто для хостинга в 3Тб, но для 2Гб хостинга это всего 11 фотосетов, ужос!!!
Попробовал поставить плагин пылесос, думал он поможет, но увы там этого не реализовано.
Пришлось лезть в исходники. Вобщем вот что получилось (для LS 0.5.1) (Для лентяев скачать готовое):

Читать дальше →

Мануал по интеграции плагинов с плагином "Role", на примере плагина "Публикация от чужого имени"

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

Первое что нужно сделать для интеграции — это создать чекбоксы для плагина "Публикация от чужого имени" в добавлении и редактировании ролей.
Плагин "Role" имет хуки.

  • template_roles_role — в шаблоне добавления к списку прав роли
  • template_roles_user — в шаблоне добавления к списку прав отдельному пользователю
  • template_roles_role_show_end — в шаблоне редактирования к списку прав роли
  • template_roles_role_user_show_end — в шаблоне редактирования к списку прав отдельному пользователю

Читать дальше →

Система блоков - расставляем точки...

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

Самое главное, что я выяснил:
1. Блоки можно создавать самостоятельно.
2. Блоки можно размещать в произвольном месте страницы (нужно заранее указать эти места)
3. Блоки могут отображаться в зависимости от Action'ов и Event'ов
4. Блоки могут отображаться в зависимости от адреса страницы. Адрес страницы можно задать с помощью регулярных выражений.
Итак, основные моменты.
Читать дальше →

Фикс диалоговых окон для ie7

Всем доброго времени суток.
В ie7 окно логина закрыто оверлеем, так же и окно загрузки изображений. Фикс этой проблемы:
идем в jquery.jqmodal.js, после строки 81. h.w.css('z-index', z); добавить строку
if (!h.w.is('.mutex')) h.w.addClass('mutex').appendTo('body');
класс mutex используется как семафор.

Модальные окна



Всем доброго времени суток. В процессе работы столкнулся с потребностью выводить свои модальные окна (на примере панели авторизации на сайте). С Jquery еще не дружу, к сожалению… Вобщем, кто подскажет, каким образом это происходит?)

Хак для роутинга

При создании собственного модуля встала задача, чтобы в URLе не присутствовало название экшена, а сразу шел параметр. В сообществе нашел пару постов которые помогли разобраться, но конечного решения так и не было. Хочу поделиться тем, что у меня получилось. Рассмотрим все на примере экшена profile. Переделываем URL страницы пользователя с
site.ru/profile/vasya/
На
site.ru/vasya/

Читать дальше →

Кеширование sql запросов

Добрый день!

Пиши каталог для одного сайта. На настоящий момент, чтобы вывести рубрикатор выполняется 255 sql-запросов. Подскажите пожалуйста как можно эти запросы закешировать? Сейчас мне выдаются вот такие результаты

MySql
query: 255
time: 0,606
Cache
query: 0
— set: 0
— get: 0
time: 0

Записи извлекаю вот так
$sql = "SELECT *, LOWER(category_title) as category_title_lower
        FROM {$this->dbprefix}category
        WHERE category_parent_id = '{$iCatID}'
        ORDER BY category_title";
$aRows = $this->oDb->select($sql);

Выделяем цветом комментарии топикстартера

Приветствую всех пользователей LiveStreet!

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

Как это сделать изложено под катом...

Плагин "Scroll Up" (Кнопка "наверх")

Наверх
Доброго времени суток!
Помню давно возникал вопрос, что листать вручную вверх страницы очень не удобно, решили что вполне можно пользоваться сочетанием клавиш Crtl+Home, но ведь большинство пользователей об этом не знают, поэтому решил сделать мини-плагин, который добавляет справа кнопку "↑ Наверх" при нажатии на которую осуществляется переход в начало страницы.
Скачать можно из каталога Плагин «Scroll Up». Работает на версии 0.4.2+
Опробовать можно на сайте test.vaktive.ru

пс: Счастливого нового года! =)

UPD: Добавил поддержку 0.4.2, плагин теперь на модерации.