问题描述
我正在测试使用 <link rel="preconnect">
提高性能的效果。就我而言,它是通过外部 API 向我的应用程序始终需要的数据发出 XHR 请求。所以我相信我需要包含 crossorigin
属性。因为这个请求需要验证,所以我设置了 crossorigin="use-credentials"
。我的预连接链接最终看起来像:
<link rel="preconnect" href="https://exampleapi.com" crossorigin="use-credentials" >
(我实际上不清楚这里的 href 是否应该只是域/主机,或者它是否应该包含特定 API 端点的路径 - 两者都试过)
根据 Safari(以及此 article),预连接成功。
当应用加载时,它会发出请求,但实际上浏览器首先会发出一个 OPTIONS 预检请求。当我在 Chrome 的 Network 选项卡中选择 OPTIONS 请求并查看 Timing 选项卡时,我的期望是 DNS 查找、初始连接和 SSL 步骤已经使用预连接处理了。但我总是在对 API 的第一个请求中看到这些步骤: OPTIONS request Chrome Network Timing
在我看来,预连接似乎没有任何好处。除非我配置错了?还是我的期望(基于此 article 中的图片)有误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)