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

hyperion

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

kern.USR

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

Kasyanov

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

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

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

wishlight

  • Живу я здесь
  • 4770
  • 279 / 1
  • 300 руб очень быстрый хостинг в ЕС
Тут похоже просто не хватает ресурсов хостинга. Ответ сервера мрачный. Это по скорости.

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

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

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

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

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

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

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

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

AlexB

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

SeBun

  • Живу я здесь
  • 3922
  • 251 / 4
  • @SeBun48
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

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

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

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

Viclingvolive

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

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

SeBun

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

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

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

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

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

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

Viclingvolive

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Цитировать
А если мне надо, чтобы скрипт располагался в 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

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

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

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

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

URL продукта VirtueMart с началом от страницы материала

Автор pvip

Ответов: 0
Просмотров: 183
Последний ответ 01.06.2020, 17:34:57
от pvip
Отключить кэширование для страницы или модуля

Автор velyar

Ответов: 7
Просмотров: 454
Последний ответ 17.05.2020, 16:05:23
от velyar
Как убрать из Head ненужные скрипты и сделать загрузку Open+Sans локальной?

Автор Zegeberg

Ответов: 5
Просмотров: 355
Последний ответ 05.05.2020, 15:46:27
от beliyadm
Страницы грузятся по 60 секунд

Автор andy12

Ответов: 10
Просмотров: 398
Последний ответ 21.01.2020, 23:55:03
от andy12
Яндекс: как перенести сайт с домена http на https

Автор Elimelech

Ответов: 2
Просмотров: 281
Последний ответ 12.01.2020, 11:54:16
от Elimelech