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

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Случайно наткнулся на этом форуме на подобную тему где smart дал интересный код для шаблона.
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
  $headerstuff = $this->getHeadData();
  $key1 = JURI::base(true). '/media/system/js/mootools.js';
  $key2 = JURI::base(true). '/media/system/js/caption.js';
  $key3 = JURI::base(true). '/media/system/js/mootools-core.js';
  $key4 = JURI::base(true). '/media/system/js/mootools-more.js';
  unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2], $headerstuff['scripts'][$key3], $headerstuff['scripts'][$key4]);
  $this->setHeadData($headerstuff);
}
(я добавил в код core и more, можете изменять на свое усмотрение)
Код убирает скрипты для гостей на сайте. Решение как мне кажется идеальное. На http://www.unshit.com/ru/ после установки скинул 25! кусков. было 35 стало 10. А после авторизации можно спокойно писать с фронта.
Проблем с работой сторонних расширений пока не обнаружил. Просьба отписываться если такие будут.

А куда этот куда шаблон вставлять объясните кто нибудь пожалуйста
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
в index.php шаблона
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
А куда этот куда шаблон вставлять объясните кто нибудь пожалуйста
Тоесть вместо выше описанных мне нужно вставить все скрипты которые находятся в шаблоне?
*

Rival

  • Захожу иногда
  • 188
  • 16 / 0
Протестировал скорость загрузки, показало 40  из 100 видимо нужно оптимизировать.

Отключил 4  неиспользуемых системных скрипта, оставил только 1 для всплывающих картинок, но по тесту от Google так и осталась скорость 40.


« Последнее редактирование: 20.06.2012, 23:47:07 от Rival »
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Протестировал скорость загрузки, показало 40  из 100 видимо нужно оптимизировать.

Отключил 4  неиспользуемых системных скрипта, оставил только 1 для всплывающих картинок, но по тесту от Google так и осталась скорость 40.

Тут ещё сильно влияет:
1 - количество загружаемых CSS + их вес, то есть сжаты они или нет.
2 - количество и качество/степень сжатия картинок
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Я делал так http://www.cyber-club.su/servisy/blogi06/entry/joomla-optimizatsiya! Было 170 кусков говна на сайте осталось 40 (http://unshit.com/ru/) и сайт после оптимизации не глючил))
*

likrion

  • Давно я тут
  • 750
  • 129 / 2
R331474010295
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Я подсказал или Вы знали о плагине?)
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Вот вариант удаления скриптов не только из шаблона но и из любого компонента, модуля и плагина:
Код: php
$document = JFactory::getDocument();

unset($document->_scripts['/media/system/js/mootools-core.js'],
$document->_scripts['/media/system/js/mootools-more.js'],
$document->_scripts['/media/system/js/core.js'],
       $document->_scripts['/media/system/js/caption.js']);
$document->_script = array();

Естественно удалять нужно только то, что не нужно для работы страницы с данным компонентом модулем и функцией,
или оставить только то что нужно для полноценной работы страницы с данным расширением.
кодинг на php.
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Надеюсь меня не закидают камнями, если Я скажу, что это несколько неправильный вариант исключения скриптов из сайта... К тому же если использовать фреймворк он и вовсе не будет работать...
Изначально файлы подключаются в файле /libraries/joomla/html/html/behavior.php
Там есть строки на подобии
Код
JHtml::_('script', 'system/core.js', false, true);
Чтобы отключить загрузку тех, или иных скриптов нужно true заменить на false (если значений true два, из оба нужно изменить на false)
Чтобы полностью отключить mootools код должен выглядеть так:
Код
		JHtml::_('script', 'system/mootools-' . $type . '.js', false, false, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
self::$loaded[__METHOD__][$type] = true;

Единственный у меня вопрос: как разрешить загрузку тех, или иных скриптов только для авторизованных пользователей?
« Последнее редактирование: 28.08.2012, 17:56:11 от Langoliers »
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
наверное
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/core.js', false, true);
...
} else {
JHtml::_('script', 'system/mootools-' . $type . '.js', false, false, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
self::$loaded[__METHOD__][$type] = true;
}
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
wfedin, спасибо! Работает. Итак вот что получилось у меня:
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
}else {
JHtml::_('script', 'system/mootools-' . $type . '.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, true);
self::$loaded[__METHOD__][$type] = true;}
И
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/caption.js', false, false);
} else {
JHtml::_('script', 'system/caption.js', true, true);
}
Такой код запрещает вызов core.js mootools-more.js и caption.js если пользователь не авторизован на сайте. Если авторизован - они загружаются для него... Однако кое какой функционал конечно порежется...
Похоже придется вернуть загрузку mootools-more.js для гостей, чего не хочется... 200 килобайт однако... У меня все остальные скрипты на сайте весят 175 (включая другие мт)

P.S. пошел курить мануалы, какой js за что отвечает...
« Последнее редактирование: 28.08.2012, 20:20:39 от Langoliers »
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
у меня после отключения caption.js ошибки сыпались и где-то нарыл я
Вот полезная инфа
http://forum.joomla.org/viewtopic.php?t=691239
http://www.acuit.com.au/Blogs/removing-jcaption-in-joomla2.5.html
А Вы куда код разместили?

P.S. так и не нашел какие js за что отвечают =\
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
сразу после отключения
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
СЮДА КОД ОЧИСТКИ СТАВИМ
}
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
сразу после отключения
Код
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
JHtml::_('script', 'system/mootools-core.js', false, true, false, false, $debug);
JHtml::_('script', 'system/core.js', false, false);
JHtml::_('script', 'system/mootools-more.js', false, false, false, false, $debug);
self::$loaded[__METHOD__][$type] = true;
СЮДА КОД ОЧИСТКИ СТАВИМ
}
Только наверное после обработки caption.js?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
Я вот так юзаю. Немного короче, но регулярка та же.
Код: php
$this->_script = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script);
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
у меня после отключения caption.js ошибки сыпались и где-то нарыл я:
Код
    // Вычищаеи остатки кода инициализации caption.js:
        if( isset($this->_script['text/javascript']) ) {
            $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
            if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] ); }
Хм... получил такую ошибку:
Цитировать
Fatal error: Using $this when not in object context in /libraries/joomla/html/html/behavior.php on line 34
На 34 строке как раз начинает код очистки... Код Shustry тоже пробовал...
Вставлял и после mootools- файлов и core.js и после caption.js и отдельно и вместе
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Вот начало шаблона, каким я его использую вот уже год на различных проектах и, практически, без изменений. Ни разу ни одной ошибки естессно.
Код: html4strict
<?php defined('_JEXEC') or die;
if (JRequest::getVar('ajcom')) {?>
<jdoc:include type="component" />
<?php } else {
unset( $this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
$this->_scripts[$this->baseurl.'/media/system/js/core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/caption.js'],
$this->_scripts[$this->baseurl.'/media/system/js/validate.js']
);
$this->_script = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script);
$templ = $this->baseurl."/templates/".$this->template;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
...
Ты из шаблонов компонентов не забыл выпилить всякие...
Код: php
JHtml::_('behavior.tooltip');
JHtml::core();
... и тому подобное?
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Вот начало шаблона, каким я его использую вот уже год на различных проектах и, практически, без изменений. Ни разу ни одной ошибки естессно.
А пустого скрипта в head нет?
Создание сайтов, шаблонов, помощь в решении проблем.
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Ты из шаблонов компонентов не забыл выпилить всякие...
Забыл ;D
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Efanych, нет. Вообще, плагин JB Library от Joomla Bamboo всё это умеет, если не хочецо заморачиваться с шаблоном.
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Efanych, нет.
А у меня есть. Остаётся от
Цитировать
<script type="text/javascript">
window.addEvent('load', function() {
            new JCaption('img.caption');
         });
  </script>
Создание сайтов, шаблонов, помощь в решении проблем.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
А у меня есть. Остаётся от
Внизапно! А ведь и у меня остаёцо О_о. А я и не замечал. Надо регулярку переписывать.
Код
<script type="text/javascript">
</script>
Вот. Пустая строка остаётся.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Решил отказаться от <jdoc:include type="head" />
Маленькая строчка а проблем с скриптами и тегами по горло. ^-^
Спойлер
[свернуть]
Скрипты вывожу внизу сайта. Переписываю некоторые под себя
Спойлер
[свернуть]
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
И на сколько скорость загрузки возрасла?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
И на сколько скорость загрузки возрасла?
Что вы имеет ввиду. Выше был приведен корректный вывод заголовков Html5
В Joomla такого не предусмотрено по умолчанию. Далее предложен вариант ручного управления скриптами где в процессе обработки циклов foreach возможно вставить свой обработчик этих файлов для минимизации. объединения и кеширования.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Внизапно! А ведь и у меня остаёцо О_о. А я и не замечал. Надо регулярку переписывать.
Код
<script type="text/javascript">
</script>
Вот. Пустая строка остаётся.
Я ж приводил код с регуляркой, чтою его не оставалось. В теме промала. Даже не посмотрели, как оказывается.
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
И в этой теме есть.
Цитировать
if( empty($this->_script['text/javascript']) )
            unset( $this->_script['text/javascript'] );
Создание сайтов, шаблонов, помощь в решении проблем.
*

vaymohk

  • Захожу иногда
  • 258
  • 1 / 0
  • Ingtimes.ru | Новости Ингушетии
Может кто оценить насколько оптимизирован вот этот сайт 1.cyber-club.su! Шаблон очень легкий сам делал
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Оптимизация сайта

Автор joni

Ответов: 0
Просмотров: 767
Последний ответ 22.07.2023, 17:10:11
от joni
Скрипт при закрытии сайта

Автор Mick_20

Ответов: 8
Просмотров: 1072
Последний ответ 14.06.2023, 18:40:20
от effrit
Не работает Вебвизор Яндекс из-за mootools

Автор MultiMatrix83

Ответов: 5
Просмотров: 2095
Последний ответ 01.03.2022, 14:40:23
от draff
Кнопка “Добавить в корзину” VirtueMart не работает на главной странице сайта

Автор max_max

Ответов: 0
Просмотров: 6456
Последний ответ 20.04.2021, 12:40:37
от max_max
[FAQ] Ускоряем загрузку сайта (руководства и инструменты)

Автор Fedor Vlasenko

Ответов: 117
Просмотров: 99901
Последний ответ 05.11.2020, 19:53:12
от Grigoriy82