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

У меня простая разметка.

       <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="prefetch" href="page2.html">
    <link as="script" rel="prefetch" href="./src/script2.js">
</head>
<body>
    <p>Let's check</p>
    <a href="page2.html">Go to page 2 where script2 is there</a>
    <script src="./src/script1.js"></script>
</body>
</html>

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

Вот page2.html

       <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>This is page 2</p>
    <script src="./src/script2.js"></script>
</body>
</html>

3 ответа

Была аналогичная проблема, и причина для меня заключалась в том, что я отключил кеш в Google Chrome.

Вы можете увидеть, как отключить / включить кеширование в Chrome DevTools, в этом ответе /questions/6274257/otklyuchenie-kesha-chrome-dlya-razrabotki-sajtov/6274284#6274284

Я некоторое время сталкивался с этой проблемой, просто понял, что HTTP-заголовок VARY повредит кеш предварительной выборки. ознакомьтесь с описанием MDN о VARY.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary

Заголовок ответа Vary HyperText Transfer Protocol (HTTP) определяет, как сопоставлять заголовки будущих запросов. Эта информация необходима, чтобы решить, можно ли обслужить кешированный ответ вместо запроса нового с исходного сервера. Этот заголовок ответа используется сервером для указания заголовков, которые он использовал при выборе представления ресурса в алгоритме согласования контента.

в моем случае, после того, как я удалил «переменный», скрипт «предварительной выборки» загружался из «кеша предварительной выборки».

Если вы используете какой-либо плагин прокси-сервера для браузера , например: Switch-Omega, он также отключит кеш предварительной выборки.

После отключите плагин Switch-Omega Chrome. Предварительная загрузка моего сайта наконец-то работает.

Другие вопросы по тегам