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

hyperion

  • Новичок
  • 3
  • 0 / 0
Друзья. Сайт http://snabsib.com/ Google ругается на долгую загрузку страницы. Просит перенести подключение скриптов вниз страницы. В каком файле это сделать?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
в шаблоне, если подключали руками.
Если не получается по-человечески перенести - читайте эту тему https://github.com/joomla/joomla-cms/issues/10250
И попробуйте этот плагин https://extensions.joomla.org/extension/scriptsdown/
*

Kasyanov

  • Захожу иногда
  • 123
  • 9 / 0
  • Всё будет хорошо)
Прежде чем переносить скрипты, попробуйте сделать базовое ускорение.

https://kasyanov.info/seo-prodvizhenie/149-seo-svoimi-rukami-chast-4

Перенос скриптов очень ответственное дело, можно здорово накосячить.
*

wishlight

  • Живу я здесь
  • 4980
  • 293 / 1
  • от 150 руб быстрый хостинг без блокировок
Тут похоже просто не хватает ресурсов хостинга. Ответ сервера мрачный. Это по скорости.

Время ответа сервера   1191 мс

Похоже ради сжатия там потрачены все ресурсы.

jch optimize при сжатии на хостинге с слабым процессором очень сильно увеличивает ответ сервера и делает сайт не быстрее, а медленнее.
« Последнее редактирование: 11.01.2018, 10:23:09 от wishlight »
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Доброго времени суток!

В одном из компонентов скрипт выводится в head при помощи кода:

Код
$document->addScript($uri->base()."components/com_muscol/assets/typeahead.js/typeahead.bundle.js");

Есть возможность изменить этот код таким образом, чтобы скрипт выводился перед </body>, или нет?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Так перенесите его
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Перенос скриптов и стилей в подвал сайта

Я читал ветку выше. Насколько понял, описанный по этой ссылке способ переносит все файлы CSS и js? Тогда это не подходит...
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Да просто берёшь эту строчку стираешь или комментируешь
 а уже в шаблоне перед тегом </body>  просто пишешь как обычный Script

Код: html
<script async defer  src="/components/com_muscol/assets/typeahead.js/typeahead.bundle.js"></script>
Если будут ошибки попробуйте убрать атрибуты async && defer
Ну конечно defer лучше всего ставить
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Есть возможность изменить этот код таким образом, чтобы скрипт выводился перед </body>, или нет?
Я когда писал ссылку, не обратил внимания, что точно такой же ответ уже был дан раньше.

Смотрите, суть в чем. У вас в коде стоит такая конструкця:
Код
$document->addScript
Это означает, что все, что вы передаете в данный класс, будет выводится в том месте шаблона, где он определен, в данном случае в шапке.

Есть плагин для оптимизации, который может перенести скрипты и оптимизировать страницу. Думаю, это как раз то, что вы ищите.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Viclingvolive, SeBun, и "ручной" вариант, и вариант с помощью плагина для переноса скриптов вниз работают. Спасибо!

А если мне надо, чтобы скрипт располагался в head как можно выше, есть какое-нибудь решение?
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Цитировать
А если мне надо, чтобы скрипт располагался в head как можно выше, есть какое-нибудь решение?
Да есть это с помощью плагина.
 для системных плагинов есть такое событие onAfterRender
 То есть это тогда когда уже страница  созданное в виде HTML но ещё клиенту не отдана.
 Если вы в системном плагине создадите такой  метод
Код: php
private $app;
 
public function onAfterRender ()
{
    $dom = new \DOMDocument();
    $body = $this->app->getBody();
    $dom->loadHTML( $body );
    $xpath = new \DOMXPath( $dom );
    $Nodes = $xpath->query( '//script[@src="https://www.google-analytics.com/analytics.js"]' );
    $headNodes = $xpath->query( '//head');

    foreach( $Nodes as $node )
    {
        // клонируем узел/элемент
        $clone = $child->cloneNode(false);
        // Удалить найденный узел
$node->parentNode->removeChild( $node );
       
        if ($headNodes->hasChildNodes()) {
              $head->insertBefore($clone,$headNodes->firstChild);
        } else {
             $headNodes->appendChild( $clone );
       }       
    }
    $body = $dom->saveHTML();
    $this->app->setBody( $body );
}
то он переставит тег  скрипт analytics.js  сразу после <head>
 Удачи вам  8)

ps -  писал с головы работоспособность не проверял -  Ну по идее должно работать || если что пишите!!
*

Viclingvolive

  • Осваиваюсь на форуме
  • 31
  • 2 / 1
Только не забудьте получить экземпляр приложения private $app;
Код
$this->app = JFactory::getApplication();
Обычно люди это в Конструктор засовывают )))
*

Андрей Нестеров

  • Захожу иногда
  • 207
  • 6 / 0
Цитировать
Да есть это с помощью плагина.
 для системных плагинов есть такое событие onAfterRender
 То есть это тогда когда уже страница  созданное в виде HTML но ещё клиенту не отдана.
 Если вы в системном плагине создадите такой  метод

Для меня это, к сожалению, сложновато))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Уязвимые скрипты class.phpmailer.php

Автор rezchik

Ответов: 6
Просмотров: 1154
Последний ответ 31.08.2023, 22:18:57
от rezchik
Отключить кэширование для страницы или модуля

Автор velyar

Ответов: 8
Просмотров: 1558
Последний ответ 20.11.2021, 16:47:58
от Byzi
Внизу страницы вылез код

Автор Zegeberg

Ответов: 13
Просмотров: 892
Последний ответ 20.11.2021, 16:47:00
от Byzi
Как удалить на главной страницы "?start=2" "?start=3" и так далее?

Автор Igor5

Ответов: 11
Просмотров: 861
Последний ответ 20.11.2021, 16:46:40
от Byzi
Модуль Custom Filters - перенести рамку блока

Автор DrShepard

Ответов: 25
Просмотров: 956
Последний ответ 22.04.2021, 05:44:12
от draff