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

Аватар пользователя grpetr189853 grpetr189853 22 февраля в 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 - если он конечно вообще существует. Спасибо за помощь!!!!

0 Thanks

Комментарии

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

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

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

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

Аватар пользователя grpetr189853 grpetr189853 23 февраля в 1:16

Спасибо за рекомендацию.Просто не хотелось сторонние модули ставить! Я думал решить это правкой template.php.