Я создал тестовую страницу по адресу crenshaw.dev/demo/hints.html с подсказками для браузера. запрос dns-prefetch и предварительное подключение к mac9416.com.
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Test resource hints</title>
<link rel="dns-prefetch" href="//mac9416.com">
<link rel="preconnect" href="https://mac9416.com" crossorigin>
</head>
<body>
Lorem ipsum dolor sit amet,
<!-- a bunch more to delay page loading -->
Duis dignissim gravida commodo.
<script src="https://mac9416.com/blah.js"></script>
</body>
</html>
Но, согласно WebPageTest, соединение с mac9416.com отсутствует. t происходит до тех пор, пока index.html не будет полностью загружен.
Почему Chrome не подключается к mac9416.com сразу после анализа <head>
?
ОБНОВЛЕНИЕ:
Основываясь на принятом ответе и комментарии, я написал объяснение исправления .
Атрибут
crossorigin
при использовании сrel="preconnect"
описывает не где находится целевой источник, а скорее какие ресурсы будут загружены из этого источника. Если активы используют CORS, требуетсяcrossorigin
. Если CORS не будет использоваться,crossorigin
следует опустить. Если будут присутствовать оба типа активов, необходимы две подсказки ресурсов.