Выполняется ли каскадная предварительная выборка HTML?
На нашей домашней странице в разделе заголовка есть следующее:
<link rel='prefetch' href='/pages/about/'>
На странице about есть следующее в разделе заголовка:
<link rel='prefetch' href='/pages/terms/'>
Если пользователь переходит на домашнюю страницу, будет ли предварительно загружена страница условий?
Другими словами, каскадируется ли предварительная выборка?
1 ответ
Да согласно черновому стандарту, но может работать не так, как ожидается в вашем посте; Это не пререндер. Каскад обоих на главной странице.
<link rel='prefetch' href='/pages/about/'>
<link rel='prefetch' href='/pages/terms/'>
Нет, согласно проекту, он не префектирует префект на префектуре.
Проект стандарта от 5 октября 2020 г. ... https://w3c.github.io/resource-hints/#prefetch
Является:
Тип связи предварительной выборки используется для идентификации ресурса, который может потребоваться для следующей навигации и который пользовательский агент ДОЛЖЕН получить, чтобы пользовательский агент мог предоставить более быстрый ответ после запроса ресурса в будущем.
и специально показывает каскад в примере, но для дополнительных ресурсов с этой страницы.
Пользовательский агент НЕ ДОЛЖЕН применять предварительную обработку к ответу и НЕ ДОЛЖЕН автоматически выполняться
Пререндер также находится в черновике. https://w3c.github.io/resource-hints/#prerender
Пользовательский агент МОЖЕТ предварительно обработать ответ HTML, также извлекая необходимые подресурсы и выполняя их (т.е. предварительно отображая страницу). Решение о том, какие этапы предварительного рендеринга выполнять, откладывается на пользовательский агент.
Prerender в настоящее время поддерживается на 73%, его поддерживают Edge и Chrome, а Firefox еще не поддерживает.
https://caniuse.com/link-rel-prerender
Сервисные работники
Если вам нужно больше контроля над кешем, Service Workers, которые являются частью Progressive Web Application, можно использовать с веб-сайта (service worker также отвечает за уведомления).
Внутри сервис-воркеров есть addResourcesToCache, он принимает массив, поэтому вы можете создать манифест того, что должно быть доступно, если соединение прерывается, чтобы перейти к страницам с информацией и терминами.
addResourcesToCache([
"/sw-test/",
"/sw-test/index.html",
"/sw-test/style.css",
"/sw-test/app.js",
"/sw-test/image-list.js",
"/sw-test/star-wars-logo.jpg",
"/sw-test/gallery/bountyHunters.jpg",
"/sw-test/gallery/myLittleVader.jpg",
"/sw-test/gallery/snowTroopers.jpg",
])