是否可以同时使用 preconnect 和 preload rel 属性?

问题描述

想象一下,你有一个提供文档的 web 服务器和一个提供所有文档的 js 组件块的 cdn:

有 1 个重要的块 main.js 有一个预加载链接 rel。

问题:是否可以对 1 个链接标签进行预连接和预加载相关?

今天是:

<link rel="preload" href="https://d3i4yxtzktqr9n.cdn.net/main.js" crossorigin="anonymous" as="script">

我想成功:

<link rel="preconnect preload" href="https://d3i4yxtzktqr9n.cdn.net/main.js" crossorigin="anonymous" as="script">

Waterfall

解决方法

根据我对https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preconnect的理解, preconnect 用于您希望为以后的步骤准备的资源,并在您真正想要访问资源时减少处理时间

例如在注册表单上,当用户正忙于输入用户信息时,您已经可以预先连接以建立与某些身份验证服务的连接。

而预加载用于具有高优先级的必需资源,例如您快速需要的字体或样式表。

由于 Internet Explorer 无法处理预连接,从技术上讲,您可以使用预加载作为替代指令。但由于它们的用例不同,可能不推荐使用,并且预加载具有更高的优先级