preload文件夹,prefetch 和preload_preload_prefetch

 2023-09-25 阅读 11 评论 0

摘要:浏览器资源优先级image.pngpreload文件夹,不同的资源在浏览器渲染的不同阶段进行加载的优先级不同, 一共分成五个级别Highest 最高Hight 高Medium 中等Low 低Lowest 最低其中主资源HTML和CSS的优先级最高,其他资源根据情况的不同优先级不一JS脚本根据它们在文件中的位

浏览器资源优先级

image.png

preload文件夹,不同的资源在浏览器渲染的不同阶段进行加载的优先级不同, 一共分成五个级别

Highest 最高

Hight 高

Medium 中等

Low 低

Lowest 最低

其中主资源HTML和CSS的优先级最高,其他资源根据情况的不同优先级不一

JS脚本根据它们在文件中的位置是否异步、延迟或阻塞获得不同的优先级:

1、网络在第一个图片资源之前阻塞的脚本在网络优先级中是中级

2、网络在第一个图片资源之后阻塞的脚本在网络优先级中是低级

3、异步/延迟/插入的脚本(无论在什么位置)在网络优先级中是很低级

4、图片(视口可见)将会获得相对于视口不可见图片(低级)的更高的优先级(中级),所以某些程度上 Chrome 将会尽量懒加载这些图片。

5、低优先级的图片在布局完成被视口发现时,将会获得优先级提升

6、preload 使用 “as” 属性加载的资源将会获得与资源 “type” 属性所拥有的相同的优先级。(比如说,preload as="style" 将会获得比 as=“script” 更高的优先级)

7、不带 “as” 属性的 preload 的优先级将会等同于异步请求

preload

preload 提供了一种声明式的命令,让浏览器提前加载指定资源(加载后并不执行),需要执行时再执行

这样做的好处在于:

1、将加载和执行分离开,不阻塞渲染和document的onload事件

2、提前加载指定资源,不再出现依赖的font字体隔了一段时间才刷出的情况

const link = document.createElement('link');

link.rel = 'preload';

link.as = 'style';

link.href = '/path/to/style.css';

document.head.appendChild(link);

【特性】

使用 preload 后,不管资源是否使用都将提前加载。若不确定资源是必定会加载的,则不要错误使用 preload,以免本末导致,给页面带来更沉重的负担

Preload 的与众不同还体现在 onload 事件上。也就是说可以定义资源加载完毕后的回调函数

此外,preload 不会阻塞 windows 的 onload 事件

对跨域的文件进行preload时,必须加上 crossorigin 属性

【二次获取】

不使用as属性

如果对所 preload 的资源不使用明确的 “as” 属性,将会导致二次获取

字体文件

preload 字体不带 crossorigin 会二次获取! 确保对 preload 的字体添加 crossorigin 属性,否则字体文件会被下载两次,这个请求使用匿名的跨域模式。

这个建议也适用于字体文件在相同域名下,也适用于其他域名的获取(比如说默认的异步获取)

【警告】

没有用到的 preload 资源, 在 Chrome 的 console 里会在 onload 事件 3s 后发生警告

Prefetch

它的作用是告诉浏览器加载下一页面可能会用到的资源,注意,是下一页面,而不是当前页面。因此该方法的加载优先级非常低,也就是说该方式的作用是加速下一个页面的加载速度

【区分】

preload 是告诉浏览器页面必定需要的资源,浏览器一定会加载这些资源

prefetch 是告诉浏览器页面可能需要的资源,浏览器不一定会加载这些资源

在VUE SSR生成的页面中,首页的资源均使用preload,而路由对应的资源,则使用prefetch

所以,对于当前页面很有必要的资源使用 preload,对于可能在将来的页面中使用的资源使用 prefetch

【不要混用】

preload 和 prefetch 混用的话,并不会复用资源,而是会重复加载

使用 preload 和 prefetch 的逻辑可能不是写到一起,但一旦发生对用一资源 preload 或 prefetch 的话,会带来双倍的网络请求

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/93919.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息