как решить отложенный разбор JavaScript?

Как решить следующую ошибку:

826,9 КБ JavaScript анализируется во время начальной загрузки страницы. Отложите синтаксический анализ JavaScript, чтобы уменьшить блокировку рендеринга страницы.

Мой код Javascript:

{foreach $javascript.external as $js}

    <script  type="text/javascript" src="{$js.uri}" {$js.attribute} ></script>

{/foreach}

person Make    schedule 10.05.2017    source источник
comment
Возможный дубликат Как исправить отложенный анализ JavaScript в престашоп?   -  person zesda    schedule 28.11.2017


Ответы (1)


Предполагая, что вы добавляете сценарии в тег заголовка, вы можете отложить блокировку рендеринга страницы, добавив сценарий рядом с закрывающим тегом тела, а не в заголовке.

В качестве альтернативы создайте IIFE и загрузите скрипты после отображения страницы.

(function() {
  function loadJS() {
    var s = document.createElement('script'),
      getScriptTag = document.getElementsByTagName('script')[0];
    s.type = 'text/javascript';
    s.async = true;
    s.src = 'script location';
    getScriptTag.parentNode.insertBefore(s, x);
  }

  (window.attachEvent) ? window.attachEvent('onload', loadJS): window.addEventListener('load', loadJS, false)
}());
person brk    schedule 10.05.2017
comment
привет, я использую асинхронный атрибут, чтобы решить эту проблему. но решить эту проблему в браузере Chrome, но она не работает в Mozilla Firefox правильно, пожалуйста, скажите мне, как решить ?? @брк - person Make; 24.05.2017