@del993788

Зачем нужен link preload, и что хочет от меня pagespeed?

Здравствуйте. Прохожу тест pagespeed, он мне выдаёт 99/100 и такое сообщение:
Настройте предварительную загрузку ключевых запросов - 0,18 s
Чтобы загружать требуемые ресурсы в порядке приоритета, вам следует использовать . Подробнее….


Ну я меняю свои 3 скрипта: jquery, gsap и "мой js", которые подключены вот так:
...
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/TweenMax.min.js"></script>
<script src="js/js.js"></script>
</body>
</html>

на вот так:
<head>
  ...
<link rel="preload" href="js/jquery-3.2.1.min.js" as="script">
<link rel="preload" href="js/TweenMax.min.js" as="script">
<link rel="preload" href="js/js.js" as="script">
  ...
</head>


и всё перестаёт работать... Будто скрипты вообще не загрузились
В консоли у меня появляется сообщение для каждого из скриптов:
The resource local.local/js/TweenMax.min.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.


Из хабра:
preload
говорит браузеру как можно скорее загрузить и кэшировать ресурс (например, скрипт или таблицу стилей). Это полезно, когда ресурс понадобится через несколько секунд после загрузки страницы — и вы хотите ускорить процесс.
Браузер ничего не делает с ресурсом после загрузки. Скрипты не выполняются, таблицы стилей не применяются. Ресурс просто кэшируется и немедленно предоставляется по запросу.


В моём файле js.js есть функции, которые отвечают за отображение сайта. По логике, jquery и gsap должны быть в preload, а скрипт должен быть отдельно, но если сделать так, то в консоли вообще будет ошибка:
js.js:16 Uncaught ReferenceError: TweenLite is not defined

потом вот эта фраза: "Скрипты не выполняются ... предоставляется по запросу". И как мне их запросить?

Что я делаю не так?
  • Вопрос задан
  • 2941 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Что я делаю не так?
Нужно добавить <link rel="preload" />, а не заменить ими ваши скрипты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы