Уровень ускорения 200%+ в Айри получил существенное улучшение в плане отложенной загрузки JavaScript-файлов.
Загрузка сторонних скриптов
Каждый сторонний (3rd-party) виджет добавляет 100-200мс ко времени загрузки страницы. Если число их невелико (до 10), то такая «нагрузка» почти незаметна для посетителей сайта. Но при большом их количестве (в среднем, сейчас на сайтах подключается 25-30 сторонних модулей) это существенно замедляет работу сайта. К сторонним модулям относятся все внешние скрипты: это статистика и аналитика, товарные рекомендации, персонализация, тестирование, обратная связь, реклама, отслеживающие пиксели и социальные сети.
Вариантов исправить эту ситуацию немного: убрать все ненужное или отложить все нужное. Обычно почти все сторонние скрипты могут быть отложены (потому что не изменяют содержание страницы) и загружены уже после полной загрузки (post-load).
Проблема document.write
Отложенная загрузка сторонних скриптов давно волнует веб-разработчиков. Но почти всех останавливала необходимость эмулировать работу системного вызова document.write
: он позволяет прямо в коде изменять содержание веб-страницы (например, даже блокировать отображение каких-либо последующих элементов) и блокирует асинхронную или отложенную загрузка скриптов (если в асинхронном скрипте вызвать document.write, он либо не сработает, либо сотрет текущую страницу пользователя — в зависимости от браузера).
Очевидно, что простого решения для отложенной загрузки скриптов не существует, но в Айри проанализировали текущий опыт работы с этой проблемой и внедрили для уровня ускорения 200%+ режим эмуляции вызова document.write
. В этом режиме сам вызов во время отложенной загрузке заменяется на DOM-эквиваленты, которые позволяют безошибочно подключать любые внешние скрипты. Аналогичные решения, но покрывающие какую-либо другую часть функционала отложенной загрузки уже были в async document.write, ControlJS от Steve Souders и extsrcjs.
Функция отложенной загрузки скриптов подключается при выборе ускорения 200%+ в настройках сайта в Айри.рф и доступна с тарифного плана Юпитер.