Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 3550 Просмотров
*

Rojas

  • Осваиваюсь на форуме
  • 40
  • 10 / 0
Делаю AJAX в компоненте, нужно соотв-но получить json..
В joomla1.5 чистую страницу без CSS,JS и тп получал через http://site.ru/index2.php?option=com_component
Сейчас работаю с 1.7 - там такое не работает  :( - все равно загружается страница со всем мусором из шаблона..
Может, в API 1.7 это как-то по-другому реализовано?
Никто не знает?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как получить чистый HTML компонента
« Ответ #1 : 31.10.2011, 12:51:24 »
В Joomla 1.5/1.7 не используется index2.php, вместо этого добавьте к ссылке format=raw...
*

Rojas

  • Осваиваюсь на форуме
  • 40
  • 10 / 0
Re: Как получить чистый HTML компонента
« Ответ #2 : 31.10.2011, 12:57:16 »
Спасибо!
Все, понял )
« Последнее редактирование: 31.10.2011, 13:05:07 от Rojas »
*

SAIUZ

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Re: Как получить чистый HTML компонента
« Ответ #3 : 31.10.2011, 13:09:07 »
добавьте к ссылке format=raw...
Сталкивался с такой-же проблемой, но так ее и не решил. При добавлении такой переменной к УРЛу, у меня ошибка сервера 500 и тайна белого экрана. Пробовал на разных хостах. Копал интернет, нарывал много чего разного, но так ничего и не заработало.
Ежели есть какие-нить условия для использования сего, расскажите пожалуйста, или киньтесь ссылкой, куда можно еще покапать.
*

Diiimonn

  • Захожу иногда
  • 234
  • 29 / 0
Re: Как получить чистый HTML компонента
« Ответ #4 : 31.10.2011, 13:38:59 »
Цитировать
Сталкивался с такой-же проблемой, но так ее и не решил.
если у вас в контроллере как-то так:
Код
$viewType	= $document->getType();
$viewName = 'viewname';
$view = $this->getView($viewName,$viewType);
то будете ловить ошибку 500 т.к. в этом случае нужен вид view.raw.php
Попробуйте так:
Код
$view = $this->getView('viewname','html');
Создание расширений для Joomla
Skype: diiimonn
ICQ: 351181332
*

SAIUZ

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Re: Как получить чистый HTML компонента
« Ответ #5 : 31.10.2011, 15:08:16 »
Код
$view = $this->getView('viewname','html');
Благодарю, но к сожалению не работает.
Ошибка та же. Однако на сколько я могу судить, то это не ошибка не нахождения вида, т.к. в случае если вид не найден, то это есть в описании ошибки. В моем же случае, я 500-ю отлавливаю, только через FireBug, на экране ничего не отображается, ни ошибки ни контента. При чем так происходит вне зависимости, есть у меня файл вида view.raw.php, или же нет его.
может что-то не так пишу в контроллере?
Код: php
    function display()
    {
$document = &JFactory::getDocument();
$viewType = $document->getType();
$viewName = 'category';
$view = $this->getView($viewName,$viewType);
//$view = $this->getView('category','html'); // или так, но все равно, одно и то же.
JRequest::setVar('view', $view);
parent::display();
    }
*

Diiimonn

  • Захожу иногда
  • 234
  • 29 / 0
Re: Как получить чистый HTML компонента
« Ответ #6 : 31.10.2011, 16:36:45 »
а если так:
Код
	function display()
{
$view = $this->getView('category','html');
$view->display();
}
Создание расширений для Joomla
Skype: diiimonn
ICQ: 351181332
*

SAIUZ

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Re: Как получить чистый HTML компонента
« Ответ #7 : 31.10.2011, 16:53:36 »
а если так:
Код: php
	function display()
{
$view = $this->getView('category','html');
$view->display();
}

К сожалению то же, тайна белого экрана. Это не может каким нибудь образом зависеть от версии Joomla? У меня 1.6.3.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Как получить чистый HTML компонента
« Ответ #8 : 31.10.2011, 17:08:34 »
К сожалению то же, тайна белого экрана.
Для разработчика "Тайны белого экрана" никогда не было и нет. И не важно что там J или нет.
Советую начать с понятия PHP.
*

SAIUZ

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Re: Как получить чистый HTML компонента
« Ответ #9 : 31.10.2011, 18:46:28 »
Для разработчика "Тайны белого экрана" никогда не было и нет. И не важно что там J или нет.
Советую начать с понятия PHP.
Благодарю. Проблему решил.
Почему-то сразу не подумал порыскать в логах апача.
Код
 Call to undefined method JDocumentRaw::addCustomTag() 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jroute компонента альбомов

Автор Koot

Ответов: 2
Просмотров: 987
Последний ответ 03.08.2019, 10:21:04
от Aleks.Denezh
Как использовать функции компонента в модуле?

Автор specialist-web

Ответов: 6
Просмотров: 1300
Последний ответ 12.05.2019, 12:26:10
от AlekVolsk
params->get для компонента, как получить свои собственные параметры для компонента

Автор klubnichkaaa

Ответов: 13
Просмотров: 14362
Последний ответ 01.06.2017, 20:20:28
от Septdir
По ID'у пункта меню получить ссылку для перехода

Автор GRIG

Ответов: 4
Просмотров: 3126
Последний ответ 08.05.2017, 17:13:05
от Aleks.Denezh
Плагин Smart Search для своего компонента

Автор ftp27

Ответов: 1
Просмотров: 2106
Последний ответ 07.01.2017, 19:44:04
от newvideo