Перейти к содержимому


Фотография
- - - - -

Асинхронная загрузка скриптов


Сообщений в теме: 9

#1 Yastroitel

Yastroitel

Отправлено 24 March 2015 - 11:58

Добрый день!

 

Бьюсь над асинхронной загрузкой скриптов для ускорения работы

 

Вопросов соответственно два

 

1. Как наиболее корректно (и стоит ли) включать асинхронность? Делаю это через плагин https://www.daycount...async-defer.htm

 

2. Как заставить скрипты ZOO и JbZOO загружаться асинхронно - особенно при условии что у них везде есть параметр через знак вопроса?


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 25 March 2015 - 16:09

Yastroitel, ни когда не пользовался и не делал такое подключение через плагин.

2. Как заставить скрипты ZOO и JbZOO загружаться асинхронно - особенно при условии что у них везде есть параметр через знак вопроса?

За знаком вопроса идет так называемый штамп(когда изменялся файл) что бы при изменениях браузер видел эти изменения и брал файл не из кеша.

Так что можно и без значений со знаком вопроса использовать/подключать.


  • 0
Изображение
 

#3 Yastroitel

Yastroitel

Отправлено 25 March 2015 - 20:10

То есть скорее всего это и не требуется делать?

Google рекомендует по максимуму загружать скрипты асинхронно, чтобы быте пользователю показать страницы
  • 0

#4 Cheren-dow

Cheren-dow

Отправлено 25 March 2015 - 20:41

Google рекомендует по максимуму загружать скрипты асинхронно, чтобы быте пользователю показать страницы

Лучше уж тогда все JS в один файл собрать и подключить один файл JS. Куда лучше чем куча мелких. 


  • 0
Изображение
 

#5 Yastroitel

Yastroitel

Отправлено 26 March 2015 - 07:44

Лучше уж тогда все JS в один файл собрать и подключить один файл JS. Куда лучше чем куча мелких. 

Ок - а как тогда это сделать?

 

Скажем так - в теории я это понимаю  - но на практике - скорее всего нарвусь же на полный хаос и выпадание функции.

 

Какой плагин можете посоветовать?

Или учиться руками?


  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 26 March 2015 - 10:43

Какой плагин можете посоветовать? Или учиться руками?

Делал все руками. Собирал все файлы joomla в один


  • 0
Изображение
 

#7 axeld

axeld

Отправлено 18 March 2017 - 15:14

Делал все руками. Собирал все файлы joomla в один

 

Написали бы пост, как собрать все в один ? Я думаю это многим интересно.


  • 0

#8 mmth

mmth

Отправлено 18 March 2017 - 17:18

шаблон jblank умеет сжимать сам и css (scss,less) в один, и соответственно js.

Включается в файле init.php

$tpl->merge('css',true);
$tpl->merge('js',true);

Что касается jbzoo он это тоже умеет сжимать в один файл своё добро. "Оранжевая шестерня" jbzoo, кнопка "Настройки" > пункт "JavaScript & Less/CSS" слева в меню.

 

И еще на счет шаблона jblank, в less свойство background если передавать вместо url('../images/simple.jpg') data-uri('../images/simple.jpg'), он файл подгрузит в css, а это минус один запрос в браузере. Единственное работает с картинками меньше 32кб. подробнее можно почитать в документации Дениса http://jblank.pro/#less-scss


  • 1

#9 mmth

mmth

Отправлено 18 March 2017 - 17:49

а на счет асинхронности:

$doc->addScript('script.js', 'text/javascript', false, true);
// addScript(string $url, string $type = "text/javascript", boolean $defer = false, boolean $async = false)

подключения же сами происходят в файле jbassets.php 

/media/zoo/applications/jbuniversal/framework/helpers/jbassets.php

через уже выше указанную функцию addScript и еще фунцию js которая в итоге работает с массивом _list в функции loadAll

 

Но как по мне это не обязательно, нужно просто уменьшить кол-во файлов js css по максимуму, убрать лишние дабы сократить объем. Оптимизировать изображения перед загрузкой на сайт + gzip + Cache-Control public,max-age='месяц-год' + ngnix отдавать статику например.


  • 1

#10 Yastroitel

Yastroitel

Отправлено 18 March 2017 - 18:05

Ну и спустя много лет от старта темы - добавлю, что пользуюсь JCH - https://www.jch-optimize.net/- и он не плохо решает проблему с JS и CSS

Даже в бесплатной версии


  • 1




Click to return to top of page in style!