这是我最近的网页测试的图片:
有什么方法可以尽可能早的发起尽可能多的http
请求吗?例如,谷歌字体文件请求开始很晚。同样,我想将 jQuery 请求移动到域上托管的 script.min.js
请求之前。基本上,我正在寻找任何方法来提高这些请求的效率。
最佳答案
首先,请确保请求尽可能直接从 HTML 完成,而不是通过 JavaScript 动态完成。将您的 JS 和 CSS 请求放入 <head>
如果可能的话。这样,浏览器的预加载扫描器将尽快请求这些文件。
注意放置 CSS 的位置 - 参见 https://csswizardry.com/2018/11/css-and-network-performance/了解更多。
如果您不能将所有内容都放入<head>
的 HTML,您正在寻找 <link rel="preload">
,正是为此目的而创建的;它告诉浏览器下载一些资源,但还没有执行它们。
一些文献:
- https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content
- https://developers.google.com/web/updates/2016/03/link-rel-preload
- https://medium.com/reloading/preload-prefetch-and-priorities-in-chrome-776165961bbf
- https://caniuse.com/#feat=link-rel-preload
请注意,截至 2018 年底,它在 Firefox 中已被禁用,并且没有预计发布时间。
此外,使用 preload
时要小心由于预加载请求获得最高优先级,这有时可能意味着其他关键但未预加载的资源将被错误地降低优先级。
在某些情况下(取决于浏览器、HTML 中条目的顺序等),preload
可能导致双重提取(特别是对于网络字体)。请务必检查一下。
关于javascript - 如何在页面加载开始时启动多个 http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540931/