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

Алесксандр

  • Новичок
  • 2
  • 0 / 0
Привет, прошу помощи у людей с прямыми руками)
Имеется шаблон Joomla http://demoseite.ah-68.de/joomla/kleinesschwarzes/
Хочется сделать, чтобы при скроллинге страницы вниз, меню, которое под шапкой, прилипло к верху страницы и осталось там зафиксированным, как на примере:
http://joomla-school.com/sozdanie-shablonov/1499-skroliruyushchee-menyu-na-jquery-dlya-joomla.html


Самому сделать по примеру не получилось - кривые руки :'( . Кто отважится решить мою проблему? Что куда прописать в шаблоне (желательно по пунктам)? Кину сотку на телефон тому, кто поможет !
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Как здесь: http://volskstroylicey.ru/?
Оборачиваете всю строку меню в отдельный <div id="fixedBox"> и прикручиваете js:
Код: javascript
jQuery(document).ready(function($) {

  /* функция кроссбраузерного определения отступа от верха документа к текущей позиции скроллера прокрутки */
  function getScrollTop() {
    var scrOfY = 0;
    if (typeof(window.pageYOffset) == "number") {
      scrOfY = window.pageYOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
      scrOfY = document.body.scrollTop;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
      scrOfY = document.documentElement.scrollTop;
    }
    return scrOfY;
  }

  function fixPaneRefresh(){
    if ($("#fixedBox").length) {
      var top = getScrollTop();
      if (top < 95) {
        $("#fixedBox").css("top",95-top+"px");
        $("#fixedBox").css("box-shadow","none");
      } else {
        $("#fixedBox").css("top","0");
        $("#fixedBox").css("box-shadow","0 9px 27px -14px #000");
      }
    }
  }

  /* пересчитываем отступ при прокрутке экрана */
  $(window).scroll(function() {
    if ($(window).width() < 1024) return;
    fixPaneRefresh();
  });
 
});
Есс-но, размеры у вас будут свои, доп.стили тоже, да и скорее всего потребуется общая доверстка шапки.
Не самый удачный пример, но это первое, что под рукой было.
*

Алесксандр

  • Новичок
  • 2
  • 0 / 0
А можно поподробней что именно где поменять? Я ж говорю, руки кривые у меня( Вот код меню
Код
<!-- Start Topnav -->
    <div id="topnav">
      <div class="topnav-inner">
                <div class="topnav">
          <ul class="nav menusf-menu">
<li class="item-101 current active"><a href="/joomla/kleinesschwarzes/" >Startseite</a></li><li class="item-119 deeper parent"><a href="/joomla/kleinesschwarzes/joomla-nutzen.html" >Joomla! nutzen</a><ul class="nav-child unstyled small"><li class="item-136"> ...............и тд и тп</li></ul></li></ul>

        </div>
                        <!-- Start Search -->
        <div id="search">
          <div class="search">
            <div class="search">
<form action="/joomla/kleinesschwarzes/" method="post" class="form-inline">
<label for="mod-search-searchword" class="element-invisible">Suchen...</label> <input name="searchword" id="mod-search-searchword" maxlength="200"  class="inputbox search-query" type="search" size="20" placeholder="Suchen..." /> <button class="button btn btn-primary" onclick="this.form.searchword.focus();">los geht's</button> <input type="hidden" name="task" value="search" />
<input type="hidden" name="option" value="com_search" />
<input type="hidden" name="Itemid" value="101" />
</form>
</div>

          </div>
        </div>
        <!-- Ende Search -->
              </div>
    </div>
    <!-- Ende Topnav -->

Как мне обернуть всё меню в отдельный "<div id="fixedBox">"? не собъется ли шаблон? как потом в админке управлять этим меню, если оно будет по другому прикручено? Может можно как то в скрипте указать, что надо <div id="topnav"> меню, а не "<div id="fixedBox"> ?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Весь <div id="topnav">. Для новичка не совсем тривиально, попробуйте в скрипте fixedBox поменять на topnav, а дальше смотрите, что да как доверстывать, учите мат.часть.
Не справитесь сами - стучите в скайп, на комм. основе.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Различные условия в шаблонах Joomla 3.0 и 2.5

Автор Fedor Vlasenko

Ответов: 133
Просмотров: 31388
Последний ответ 16.12.2024, 15:52:14
от goga_pgasovav
Двойное меню

Автор cirip

Ответов: 0
Просмотров: 1507
Последний ответ 05.11.2024, 23:19:21
от cirip
Пункт меню Текстовый разделитель ведет на главную страницу

Автор zahar_92

Ответов: 8
Просмотров: 4688
Последний ответ 27.07.2023, 13:37:17
от ei-dos
[РЕШЕНО]Скрыть пункт меню на мобильных устройствах

Автор lexxbry

Ответов: 16
Просмотров: 7423
Последний ответ 23.05.2023, 07:22:49
от geral
Шаблоны Joomlart, Gavick, Yootheme, RocketTheme для Joomla: легально и с обновлениями, no warez

Автор _ib_

Ответов: 168
Просмотров: 208001
Последний ответ 15.04.2023, 18:26:50
от AS1969