Форум русской поддержки Joomla!® CMS
24.01.2017, 05:04:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: 1 [2]  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Порядок загрузки скриптов

 (Прочитано 9716 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wertex
Новичок
*

Репутация: +6/-0
Offline Offline

Сообщений: 9



« : 13.03.2014, 01:59:19 »

Библиотека jquery подключенная в шаблоне грузится позже остальных скриптов подключенных в модулях, что приводит к конфликту и неработоспособности последних.

К примеру порядок загрузки скриптов в HEAD сейчас:
Код
<script src="/modules/mod_chat/js/ajax.js" type="text/javascript"></script>
<script src="/modules/mod_fantasy/js/script.js" type="text/javascript"></script>
<script src="/templates/roadstar/js/jquery-1.7.1.min.js" type="text/javascript"></script>
а нужно:
Код
<script src="/templates/the_eight/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="/modules/mod_chat/js/ajax.js" type="text/javascript"></script>
<script src="/modules/mod_fantasy/js/script.js" type="text/javascript"></script>

Вопрос! Как заставить скрипты шаблона грузится раньше скриптов модулей?
Записан
 
orsy
Давно я тут
****

Репутация: +19/-1
Offline Offline

Пол: Мужской
Сообщений: 331


Web-Factor Ukraine


« Ответ #31 : 06.10.2015, 15:39:59 »

Столкнулся с проблемой порядка загрузки скриптов в 3.4.1

Проблему решил следующим образом:

1. JHtml::_('jquery.framework');
2. $document->addScript(JURI::base().'components'.DS.'com_componentname'.DS.'assets'.DS.'js'.DS.'jquery.jqGrid.js');

Строчка №1 решила проблему, теперь jquery грузится первым

создавал модуль в котором нужно подключать плагины jQuery. Модуль нормально работал если его на вставить в материал плагином. Как только модуль оказывался в материале, плагины jQury подключались до джумловских, а так как они уже оказывались подключенными еще до включения джумловского jquery то после его подключения они уже не подключались.

И вот описанный в цитате способ реально решает, теперь все пашет как надо ) СПАСИБО!
Записан
Serebro2009
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 98


« Ответ #32 : 19.10.2015, 00:38:11 »

Такая же ситуация, модуль вставленный в материалы - не пашет...из-за того, что JQ подключается позже. Куда нужно прописать строчку?:
1. JHtml::_('jquery.framework');
Записан
Serebro2009
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 98


« Ответ #33 : 19.10.2015, 00:51:34 »

 -  JHtml::_('jquery.framework'); Добавлен...проблема не решена

Как быть? Почему такая ситуация?
Записан
orsy
Давно я тут
****

Репутация: +19/-1
Offline Offline

Пол: Мужской
Сообщений: 331


Web-Factor Ukraine


« Ответ #34 : 19.10.2015, 15:12:28 »

у меня файл шаблона вывода модуля начинается вот так:

Код:
<?php defined('_JEXEC') or die;

$document = JFactory::getDocument();

JHTML::stylesheet('modules/' . $module->module . '/style/'.$colorcat.'/style.css'); //подключение стилей
JHtml::_('jquery.framework'); //заветная решающая строка

$document->addScript("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"); //подключение библиотек
...
Записан
Roinmana
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 77


« Ответ #35 : 03.03.2016, 23:07:13 »

Код:
<?php JHtml::_('jquery.framework');
Проблема в том, что куда не вставлю эту строку, скрипты загружаются в head. Как заставить их грузиться именно в место где вставлена строка? Например, если я добавлю этот код в шаблон футера, то там они должны и появиться, а не в head.
Записан
zomby6888
Живу я здесь
******

Репутация: +170/-3
Offline Offline

Пол: Мужской
Сообщений: 1546


« Ответ #36 : 04.03.2016, 02:03:39 »

А зачем грузить библиотеки в body (тем более в футер)? Вы понимаете, что остальные скрипты что их используют будут вызывать ошибки. Одна такая ошибка и все остальные ваши скрипты на странице окажутся нерабочими. Мне бы захотелось руки оторвать человеку который запихнул jquery в футер, если бы столкнулся с подобной проблемой.
« Последнее редактирование: 04.03.2016, 02:26:14 от zomby6888 » Записан
Roinmana
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 77


« Ответ #37 : 04.03.2016, 09:39:04 »

А зачем грузить библиотеки в body (тем более в футер)? Вы понимаете, что остальные скрипты что их используют будут вызывать ошибки. Одна такая ошибка и все остальные ваши скрипты на странице окажутся нерабочими. Мне бы захотелось руки оторвать человеку который запихнул jquery в футер, если бы столкнулся с подобной проблемой.
Это понятно, но на конкретном сайте нужных "верхних" скрипта всего два, их грузят компоненты подписки и комментариев и один из них прекрасно загружается асинхронно. Остальным (украшательства и доп. функционал код которого прописан в самом конце) в head делать нечего, только тормозят загрузку страницы, поэтому возникла такая необходимость. Как это реализовать?
Записан
zomby6888
Живу я здесь
******

Репутация: +170/-3
Offline Offline

Пол: Мужской
Сообщений: 1546


« Ответ #38 : 04.03.2016, 10:35:03 »

Сжатый jquery, который грузится в head практически не тормозит загрузку страницы. Если хотите оптимизировать скорость загрузки страницы то стоило бы на другие вещи внимание обратить. Тем не менее, если вы такой маньяк то пишите плагин или возьмите какой нибудь готовый, который уберет все скрипты из head. А те скрипты что хотите в футер воткнуть подключайте вручную.  Фореймворк Joomla грузит скрипты только в head. Ну и имейте ввиду что если кому то после всех этих ваших действий понадобится кастомизировать этот сайт, добавить скриптик там какой нибудь то он будет вам очень благодарен за вашу находчивость Grin
« Последнее редактирование: 04.03.2016, 10:42:46 от zomby6888 » Записан
LadaDed
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #39 : 03.12.2016, 09:17:34 »

Да, вот тоже оказалась та-же ситуация.. Думал, что все скрипты прописаны где-то в базе данных, и там просто можно поменять их очередность или вообще добавить-удалить. Но не нашел в какой таблице..
Приходится вызов своего js писать просто руками в index.php чтобы он вызывался после вызова jQuery
Записан
Страниц: 1 [2]  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet