相关疑难解决方法(0)

为什么预连接资源提示不起作用?

我在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>
Run Code Online (Sandbox Code Playgroud)

但是根据 WebPageTest,直到 index.html 完全加载后才会连接到 mac9416.com。

显示 mac9416.com 的 WebPageTest 瀑布图仅在下载并解析所有标记后才连接到,而不是在解析 head 元素后立即连接

为什么 Chrome 在<head>解析后没有立即连接到 mac9416.com ?

更新:

根据接受的答案和评论,我写了一个修复的解释。

crossorigin与 一起使用时rel="preconnect",该属性不描述目标来源的位置,而是描述将从该来源下载的资产类型。如果资产使用 CORS,crossorigin则需要。如果不使用 CORS,crossorigin则应省略。如果两种类型的资产都存在,则需要两个资源提示。

html web-performance preconnect

2
推荐指数
1
解决办法
3857
查看次数

标签 统计

html ×1

preconnect ×1

web-performance ×1