Как добавить атрибут async(или defer) скриптам на сайте которые загружаются в head?

Главные вкладки

Аватар пользователя grpetr189853 grpetr189853 22 февраля 2019 в 22:57

Здраствуйте! Я начинающий разработчик Drupal - и у меня возник вопрос - с целью оптимизации google pagespeed - необходимо загружать скрипты подключенные в head страницы, асинхронно. Тут, на сайте я нашел обсуждение подобного вопроса - "Как в Drupal 7, всем выводимым в шапке скриптам js указать тип скрипта?" - https://drupal.ru/node/131310 . В одном из ответов используется хук THEME_preprocess_html - что мне не очень подходит - я бы хотел получить доступ к каждому скрипту на странице и установить для него атрибут async(или defer) - как объясняется здесь - https://stackoverflow.com/questions/53256412/drupal-7-how-do-i-add-the-a.... Проблема в том, что я не могу найти в интернете описание хука preprocess_html_tag - если он конечно вообще существует. Спасибо за помощь!!!!

Комментарии

Аватар пользователя EvgenySorokin EvgenySorokin 23 февраля 2019 в 0:30

Проще всего - https://www.drupal.org/project/advagg

Хуком hook_js_alter можно добавить defer установив его в true.
Тут пишут, что ядро 7ки само по себе async не знает, поэтому простое решение - указанный выше модуль.

p.s. я бы не заморачивался с async/defer настолько, чтобы вручную устанавливать. Лучше скрипты в нижнюю часть страницы перенести страницы, +advagg, и по большей части этого хватает для простых сайтов (при условии, что и иные правила оптимизации будут сделаны).