HTML预取资源

HTML预取资源,html,algorithm,cross-browser,httprequest,prefetch,Html,Algorithm,Cross Browser,Httprequest,Prefetch,这可能是一个愚蠢的问题,但我想问的是,预取资源(如js脚本和图像)是否会降低页面加载速度 例如:如果我有一个包含多个链接的页面: <link rel="prefetch" href="http://example.com/images.png" /> 下载它们是否会包含在页面加载时间中,或者预取(使用空闲浏览器时间)是否不是页面加载时间统计的一部分 它真的是在空闲时间发生在后台,还是只是页面加载的另一部分 谢谢这取决于浏览器: Android浏览器、Firefox和Firefo

这可能是一个愚蠢的问题,但我想问的是,预取资源(如js脚本和图像)是否会降低页面加载速度

例如:如果我有一个包含多个链接的页面:

<link rel="prefetch" href="http://example.com/images.png" />

下载它们是否会包含在页面加载时间中,或者预取(使用空闲浏览器时间)是否不是页面加载时间统计的一部分

它真的是在空闲时间发生在后台,还是只是页面加载的另一部分


谢谢这取决于浏览器:

Android浏览器、Firefox和Firefox mobile会在window.onload之后启动预取请求,但Chrome和Opera会立即启动它们,这可能会窃取当前页面所需的更重要资源的TCP连接

从IE11开始,各个网络请求按类型进行优先级排序,通常按此顺序排列

  • 网页的根文档

  • CSS样式表

  • WOFF字体

  • 脚本库

  • 使用onload事件处理程序加载的图像

  • 同步XMLHttpRequest(XHR)请求

  • 异步脚本请求(如indexedDB、Web Workers、文件API等)

  • 异步XHR请求

  • HTML5音频和视频

  • 使用object元素加载的Microsoft ActiveX和其他控件

  • 延迟的JavaScript(defer=“true”)

  • 背景也很重要:

    IE11还根据请求的上下文对请求进行优先级排序:

  • “前景”选项卡中网页发出的请求

  • 前台选项卡中iframe元素中加载的内容发出的请求

  • 背景选项卡中网页的请求

  • 对预呈现内容的请求

  • 参考资料