PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Как подсказать браузеру что какие-либо ресурсы будут загружены?

DOM и браузер

Браузеру подсказывают о будущей загрузке ресурсов через resource hints: `<link rel="preload">` (критичные), `prefetch` (для будущей навигации), `preconnect`/`dns-prefetch` (соединение), `prerender`.

Resource Hints

preload — критичные ресурсы текущей страницы

Загрузить с высоким приоритетом то, что скоро понадобится:

<link rel="preload" href="font.woff2" as="font" crossorigin>
<link rel="preload" href="hero.jpg" as="image">
<link rel="preload" href="app.js" as="script">

Браузер грузит заранее, до обнаружения в коде.

prefetch — ресурсы для будущей навигации

Загрузить с низким приоритетом то, что понадобится на следующей странице:

<link rel="prefetch" href="next-page.js">

preconnect — заранее установить соединение

Заранее выполнить DNS + TCP + TLS к домену (для сторонних ресурсов):

<link rel="preconnect" href="https://api.example.com">

dns-prefetch — только DNS

Более лёгкий вариант — заранее разрешить DNS:

<link rel="dns-prefetch" href="https://cdn.example.com">

prerender — предзагрузить всю страницу

<link rel="prerender"> устарел: Chrome вместо рендера делает только NoState Prefetch, Firefox и Safari его игнорируют. Полный пререндер следующей страницы сейчас делают через Speculation Rules API (<script type="speculationrules">, поддержка в Chromium).

fetchpriority

Управление приоритетом загрузки:

<img src="hero.jpg" fetchpriority="high">

Как выбирать

  • Критичный ресурс текущей страницы → preload.
  • Ресурс следующей страницы → prefetch.
  • Сторонний домен → preconnect/dns-prefetch.

Коротко для собеседования

Браузеру подсказывают о загрузке через resource hints: preload (критичные ресурсы текущей страницы — шрифты, hero-картинка, высокий приоритет), prefetch (ресурсы следующей навигации, низкий приоритет), preconnect (заранее DNS+TCP+TLS к домену), dns-prefetch (только DNS), prerender (вся страница). Плюс fetchpriority для приоритета.

Другие вопросы раздела