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

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

Как подключить js не в <head> а в конец страницы.

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

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

Сообщений: 5


« : 28.11.2011, 21:30:40 »

Здравствуйте.
Вопрос следующий: каким образом можно убрать подключение всех скриптов из <head> и переместить их в самый конец страницы.
Какие файлы отвечают за формирование списка подключаемых скриптов.
Заранее спасибо.
Записан
Shustry
Группа развития
*****

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

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


Рисую дизайны


« Ответ #1 : 28.11.2011, 21:36:36 »

Попробуйте так: index.php шаблона:
Код
<?php defined('_JEXEC') or die;
//В начале файла
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']
);
?>
//В конце файла
<?php
set(
$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']
);
?>
Записан
Виталик
Группа развития
*****

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

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



« Ответ #2 : 29.11.2011, 00:49:37 »

это не поможет

в самом верху шаблона надо сохранить во временный массив $this->_scripts[] и очистить, а перед </body> вывести этот массив тегами <script ...></script>
Записан
SmokerMan
Профи
********

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

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



« Ответ #3 : 29.11.2011, 01:21:51 »

это не поможет
точно))
Я лично не понимаю идею этого переноса.
Типа страница будет загружаться быстрее - да фиг там ))
Записан
Aleks_El_Dia
JComments Tester
*

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

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


AEDStudio Joomla! Direction


« Ответ #4 : 29.11.2011, 02:26:25 »

Это типа всякие YSlow так рекомендуют....
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #5 : 29.11.2011, 02:31:50 »

Это типа всякие YSlow так рекомендуют....
Эти тоже http://html5boilerplate.com/
Записан
vanya829
Новичок
*

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

Сообщений: 5


« Ответ #6 : 29.11.2011, 12:10:57 »

Всем спасибо за ответы.
В итоге решил просто установить плагин ScriptsDown.
А если это действительно не поможет, всегда можно вернуть все обратно.
Записан
al-teen
Support Team
*****

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

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


im


« Ответ #7 : 29.11.2011, 12:33:51 »

Пробовал когда то этот плагин.Ни один js не запускался после его включения.
Записан
al-teen
Support Team
*****

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

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


im


« Ответ #8 : 29.11.2011, 12:36:17 »

При переносе js вниз сайт не загружается быстрее.Просто в первую очередь загружаются стили и контент.Что якобы есь гуд.Если половина страницы использует жабаскрипт то подобная фича только повредит
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #9 : 29.11.2011, 13:17:24 »

Если половина страницы использует жабаскрипт то подобная фича только повредит
Что за бред! Четверть, 10%
Скрипты не все можно переносить вниз страницы. Все зависит от их взаимодействий с сайтом.
Записан
Очередной вебмастер
Завсегдатай
*****

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

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


лысый умный дядя


« Ответ #10 : 29.11.2011, 21:36:02 »

у меня почему то при чтении темы всплыла в голове недавняя статья  - http://www.joomlabamboo.com/blog/joomla-extensions/add-javascript-to-your-joomla-site-automatically
Для тех кто плохо видит - самый СОК в конце статьи.
Записан
klubnichkaaa
Давно я тут
****

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

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



« Ответ #11 : 06.02.2012, 17:47:02 »

Из за $helix->loadHead(); грузится много лишнего кода всякие CSS js файлы. Честно говоря это не совсем хорошо потому что могут возникнуть конфликты.
Записан
Очередной вебмастер
Завсегдатай
*****

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

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


лысый умный дядя


« Ответ #12 : 06.02.2012, 20:24:25 »

Ну дак а кто заставляет вас использовать готовые фреймворки для шаблонов.
Напишите свой и вставляйте все скрипты и CSS туда куда надо именно вам...
Записан
albrt
Захожу иногда
**

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

Сообщений: 21


« Ответ #13 : 12.02.2014, 15:10:27 »

Из за $helix->loadHead(); грузится много лишнего кода всякие CSS js файлы. Честно говоря это не совсем хорошо потому что могут возникнуть конфликты.
Не подскажете как перенести файлы js в footer ? у меня шаблон с helix framwork...
Записан
Tsyba
Новичок
*

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

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



« Ответ #14 : 21.04.2014, 16:25:53 »

Для Joomla 2.5 нашел решение, написав не большую функции и сделав парочку правок в коде. Слепил в статью, может кому-то пригодится - Перенос ява скриптов в подвал Joomla 2.5. Хак
Записан
d.voroncov
Захожу иногда
**

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

Сообщений: 14


« Ответ #15 : 17.11.2014, 21:17:56 »

Для Joomla 2.5 нашел решение, написав не большую функции и сделав парочку правок в коде. Слепил в статью, может кому-то пригодится - Перенос ява скриптов в подвал Joomla 2.5. Хак
Добрый день, не скачиваются прикрепленные файлы в статье
Записан
julyca
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 27



« Ответ #16 : 18.03.2015, 22:12:48 »

Здравствуйте. Может кто-то решил эту проблему? Судя по количеству просмотров тема очень актуальна.
Записан
antanariva
Новичок
*

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

Сообщений: 9


« Ответ #17 : 20.10.2015, 18:57:59 »

Ребят, решается все только руками: берем из уже сгенерированного HTML кода скрипты из шапки, вписываем их в конец шаблона перед </body>, а из head.php убираем раздел, начинающийся как // Generate script file links
Прошу корифеев объяснить, что делают скрипты // Generate script language declarations и аналогичный для стилей в том же файле head.php. На генерируемый код они не влияют.
PS: у меня Joomla 3..., но подозреваю, что без разницы
« Последнее редактирование: 20.10.2015, 19:04:15 от antanariva » Записан
resident82
Осваиваюсь на форуме
***

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

Сообщений: 25


« Ответ #18 : 20.04.2016, 23:46:35 »

пробовал руками переносить, слишком геморно.. нашел достаточно удобный плагин для этого дела jblibrary. позволяет все скрипты перекинуть вниз, на а цсс-ки уже врукопашную.
Записан
skytype
Осваиваюсь на форуме
***

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

Сообщений: 37


« Ответ #19 : 08.06.2017, 18:22:51 »

пробовал руками переносить, слишком геморно.. нашел достаточно удобный плагин для этого дела jblibrary. позволяет все скрипты перекинуть вниз, на а цсс-ки уже врукопашную.
Огромное спасибо за плагин.
По поводу разговоров почему скрипты нужно кидать в низ. Иногда скрипт нужно запускать после того как загрузился HTML иначе переменные в которые записаны элементы HTML-страницы не обнаружатся, а функции запустятся и выдадут ошибки.
Вот я сейчас убил уйму времени, так как у меня код отвечающий за обработку действий нужно было загружать  в конце страницы иначе выдает ошибку и ничего не работает.
« Последнее редактирование: 08.06.2017, 18:28:13 от skytype » Записан
dmitry_stas
Профи
********

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

Сообщений: 9554



« Ответ #20 : 08.06.2017, 18:25:39 »

Огромное спасибо за плагин.
По поводу разговоров почему скрипты нужно кидать в низ. Иногда скрипт нужно запускать после того как загрузился HTML иначе переменные
для этого обычно используют событие загрузки DOM, и не будет разницы где вставлен js код. но так делают не все, только те, кому и правда важно чтобы js работал всегда Azn
Записан
altvvc
Завсегдатай
*****

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

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



« Ответ #21 : 16.06.2017, 22:01:35 »

Если используете HTML5 попробуйте асинхронную загрузку скриптов ( async или defer)

Атрибут async

    Поддерживается всеми браузерами, кроме IE9-. Скрипт выполняется полностью асинхронно. То есть, при обнаружении <script async src="..."> браузер не останавливает обработку страницы, а спокойно работает дальше. Когда скрипт будет загружен – он выполнится.

Атрибут defer

    Поддерживается всеми браузерами, включая самые старые IE. Скрипт также выполняется асинхронно, не заставляет ждать страницу, но есть отличия от async.
Записан
ChaosHead
Профи
********

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

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



« Ответ #22 : 16.06.2017, 23:19:46 »

Именно! Советую defer. Еще и сайт визуально быстрее начнёт работать. Только не ставьте всякие JCH Optimize плагины, которые тормозят больше, чем что-то улучшают, а отредактируйте вызов скриптов в шаблоне.
« Последнее редактирование: 16.06.2017, 23:25:59 от ChaosHead » Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #23 : 18.06.2017, 02:09:13 »

Все динамически вставленные в тело страницы скрипты загружаются асинхронно
вставлять перед </body>
Код
<script>
(function(){for(var c=document.querySelectorAll("[data-loadJs]"),a=0;a<c.length;a++)for(var d=c[a].getAttribute("data-loadJs").replace(/\s+/g,"").split(","),b=0;b<d.length;b++){var e=document.createElement("script");e.src=d[b];document.head.appendChild(e)}})();
</script>

 
Теперь в любом документе и где нужно достаточно вставить
Код
<span data-loadJs="script1.js, scrip2.js"></span>
Профит :-)
Записан
Arkadiy
Группа развития
*****

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

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


Крепитесь, други.


« Ответ #24 : 18.06.2017, 08:07:43 »

Написал для этого дела плагин. https://joomline.ru/rasshirenija/plugin/jscssmanipulate.html
Записан
skytype
Осваиваюсь на форуме
***

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

Сообщений: 37


« Ответ #25 : 18.06.2017, 17:37:11 »

для этого обычно используют событие загрузки DOM, и не будет разницы где вставлен js код. но так делают не все, только те, кому и правда важно чтобы js работал всегда Azn
Вот про DOMContentLoaded я действительно забыл, до сихпор немного ошарашен(как я мог такое забыть)))
Но все равно скрипты лучше кидать в низ документа меньше проблем.)) а за плагины спасибо)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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