为什么包含远程脚本和 CSS 链接的本地 html 文件需要很长时间才能加载
例如,
<script src="example.com/ajax/font.js" type="123-text/javascript"></script>
<link href="example.com/ajax/Ajax.css" type="text/css" rel="stylesheet"/>
head 标签中有 10 个或更多
如果我删除 head 标签及其内容,则加载文件只需不到一秒钟
把它们留在里面,可能需要将近一分钟
它是否尝试连接这些文件?
是的,通过外部 URL 引用的资源(即公共互联网上的资源)将从那里加载,每个资源使用一对 http 请求/响应,并且所有涉及此操作的延迟和握手都会增加总加载时间。不一定是首次内容绘制的时间,但肯定是触发 document.onload 的时间。
为了加快速度,请下载这些资源,将它们与 html 文件一起保存,并将部分中的 URL 调整为文件名,不带 http:// 模式前缀,也不带主机名和目录部分。
加快速度的另一种方法是
<img src="...">
使用 base64 编码将标签等资源嵌入 html 文件本身。另一个因素:如果 HTML 文件是本地的,不是由网络服务器提供的,而只是存储在磁盘上并从那里打开,则 CORS 预检请求可能会失败,并且可能会因此导致额外的延迟。要进行诊断,请使用浏览器的开发者控制台检查网络流量。涉及 CORS 预检握手的请求将成对出现,网络流量检查器窗格将为您详细说明时间的所有部分。