Различные расширения могут подключаться к различным событиям, которые запускаются во время обработки вывода (так что даже после визуализации шаблона).
Лучший вариант, который я нашел до сих пор, - это создание системного плагина и перемещение его в порядок.последний из доступных системных плагинов.
Теперь у вас есть две опции:
- use onBeforeCompileHead (я полагаю, представил Joomla 1.5.23) для перемещения скриптов в headjs.
- используйте onAfterRender html-код события и анализируйте заголовок, чтобы он загружался с использованием headjs.
Это хорошо, если вы работаете с асинхронными сценариями, загружающимися там, где у вас естьполный контроль над сайтом, но практически невозможно реализовать как универсальное расширение для Joomla.Некоторые расширения используют встроенные скрипты в заголовке, некоторые в теле html, и вам нужно сохранить порядок выполнения (простой пример: Mootools должен загружаться первым).
Я использую для асинхронной загрузки только те скрипты, которыеЯ включил себя (в моем шаблоне или моем расширении).Любые скрипты, которые добавляются с помощью ядра Joomla (Mootools, core.js и т. Д.) Или других расширений, которые я не затрагиваю.