Новости 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 Гость просматривают эту тему.
  • 7 Ответов
  • 1866 Просмотров
*

dj_lexa

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
VM Accordion Menu
« : 27.05.2015, 23:08:21 »
Установил модуль Аккордион меню для VirtueMart.
После публикации плагина VM Accordion Menu на сайте перестает работать jQuery. Не появляются всплывающие окна при нажатии на картинки, а так же при нажатии кнопки "в корзину" сразу открывается страница с корзиной (так же не появляется всплывающее меню). Работу jQuery восстановил, заменив все символы "$" на "jQuery" в файле jquery.min.js, а в файл modules/mod_vm_accordion_menu/tmpl/default.php вставил код:
Код
<script type="text/javascript">
     jQuery.noConflict();
 </script>

Файл jquery.min.js состоит из jQuery JavaScript Library v1.4.2, а так же в файл включен Sizzle.js с сайта http://sizzlejs.com/

Но после вышеперечисленных изменений модуль перестал работать должным образом, на сайте отображается в раскрытом виде.
Как заставить работать модуль должным образом, не конфликтуя с другими модулями и плагинами?
« Последнее редактирование: 27.05.2015, 23:39:47 от dj_lexa »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: VM Accordion Menu
« Ответ #1 : 27.05.2015, 23:34:47 »
а у меня нет в дистрибутиве VM 3.0.8 такого плагина или модуля. это сторонняя вещь?
*

dj_lexa

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: VM Accordion Menu
« Ответ #2 : 27.05.2015, 23:41:48 »
а у меня нет в дистрибутиве VM 3.0.8 такого плагина или модуля. это сторонняя вещь?
Да, это сторонний плагин Virtuemart Accordion Menu
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: VM Accordion Menu
« Ответ #3 : 27.05.2015, 23:56:00 »
задайте вопрос разработчикам.
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Re: VM Accordion Menu
« Ответ #4 : 28.05.2015, 00:12:26 »
Работу jQuery восстановил, заменив все символы "$" на "jQuery" в файле jquery.min.js, а в файл modules/mod_vm_accordion_menu/tmpl/default.php вставил код:
всяко было, но такое... вы хоть примерно понимаете суть своих действий и их последствия? верните все, как было.

Цитировать
jQuery JavaScript Library v1.4.2
откуда такое старье? это в модуле идет подключение? Уберите его. Или в настройках модуля (не увидел этого на скриншотах у разработчика), или ищите, где в коде модуля идет подключение jQuery и комментируйте.
Веб-разработка: заказ. Только новая разработка.
*

dj_lexa

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: VM Accordion Menu
« Ответ #5 : 28.05.2015, 10:14:56 »
Цитировать
всяко было, но такое... вы хоть примерно понимаете суть своих действий и их последствия? верните все, как было.
Вернул обратно все как было.

Цитировать
откуда такое старье? это в модуле идет подключение? Уберите его. Или в настройках модуля (не увидел этого на скриншотах у разработчика), или ищите, где в коде модуля идет подключение jQuery и комментируйте.

jQuery (jquery.min.js) подключается в файле modules/mod_vm_accordion_menu/tmpl/default.php, если убрать его, то меню перестает работать, т.е. постоянно отображается в раскрытом виде.
Код
<script type="text/javascript" src="<?php echo $LiveSite.'modules/mod_vm_accordion_menu/js/jquery.min.js';?>"></script>
<script type='text/javascript' src='<?php echo $LiveSite.'modules/mod_vm_accordion_menu/js/jquery.cookie.js'; ?>'></script>
<script type='text/javascript' src='<?php echo $LiveSite.'modules/mod_vm_accordion_menu/js/jquery.hoverIntent.minified.js'; ?>'></script>
<script type='text/javascript' src='<?php echo $LiveSite.'modules/mod_vm_accordion_menu/js/jquery.dcjqaccordion.2.7.min.js'; ?>'></script>
<script type="text/javascript">
$(document).ready(function($){
$('#accordion-1').dcAccordion({
eventType: '<?php echo $mode; ?>',
autoClose: true,
classArrow   : 'dcjq-icon',
saveState: <?php echo $rlaststate; ?>,
disableLink: <?php echo $link_parent; ?>,
speed: 'slow',
showCount: <?php echo $showcount; ?>,
autoExpand: true,
cookie : 'os-accordion-1',
classExpand : 'os-current-parent'
});

});
</script>
« Последнее редактирование: 28.05.2015, 10:24:15 от dj_lexa »
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Re: VM Accordion Menu
« Ответ #6 : 28.05.2015, 14:14:03 »
Отключите в модуле jquery.min.js

этот код
Спойлер
[свернуть]
замените на этот
Спойлер
[свернуть]

Если не поможет, ссылка на страницу.
Веб-разработка: заказ. Только новая разработка.
*

dj_lexa

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: VM Accordion Menu
« Ответ #7 : 28.05.2015, 15:26:54 »
Цитировать
Отключите в модуле jquery.min.js
Отключил.

Код заменил на указанный вами и все заработало! Огромное спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SP VirtueMart Category Menu - как отредактировать стили этого меню

Автор artem_wrong

Ответов: 2
Просмотров: 1040
Последний ответ 01.11.2017, 19:59:17
от arma
Кто сталкивался с модулем меню JUX Mega Menu for VirtueMart

Автор Stasweb

Ответов: 25
Просмотров: 3333
Последний ответ 18.10.2017, 06:12:38
от Stasweb
Joomla 2.5+virtuemart2 Accordion Menu в карточке товара

Автор максим1889

Ответов: 1
Просмотров: 872
Последний ответ 07.11.2016, 02:44:39
от gartes
JUX Mega Menu для VirtueMart что случилось не понятно

Автор Stasweb

Ответов: 0
Просмотров: 1025
Последний ответ 21.10.2015, 14:22:44
от Stasweb
Как убрать com-virtuemart-menu-configuration?

Автор Tyler_Durden

Ответов: 6
Просмотров: 2997
Последний ответ 24.08.2015, 11:36:13
от maxim.ilin