网站安排 (网站欣赏-预加载页面资源-preload-网站开发-用-网站制作-网页UI设计-网站设计-网站建设-厦门网站建设)

文章编号:1873 更新时间:2024-01-07 分类:互联网资讯 阅读次数:

资讯内容

厦门网站介绍在这里绍preload的使用,以及与prefetch的区别。然后会聊聊浏览器的加载优先级。

如何使用preload

如何使用preload

网站安排网站欣赏预加载页面资源prel

使用link标签创建

使用HTTP响应头的Link字段创建

如我们常用到的antd会依赖一个cdn上的font.js字体文件,我们可以设置为提前加载,以及有一些模块虽然是按需异步加载,但在某些场景下知道其必定会加载的,则可以设置preload进行预加载,如:

如何判断浏览器是否支持preload

目前我们支持的浏览器主要为高版本Chrome,所以可放心使用preload技术。其他环境在caniuse.com上查到的支持情况如下:在不支持preload的浏览器环境中,会忽略对应的link标签,而若需要做特征检测的话,则:

如何区分preload和prefetch

preload是确认会加载指定资源,如在我们的场景中,x-report.js初始化后一定会加载PcCommon.js和TabsPc.js,则可以预先preload这些资源;

prefetch是预测会加载指定资源,如在我们的场景中,我们在页面加载后会初始化首屏组件,当用户滚动页面时,会拉取第二屏的组件,若能预测用户行为,则可以prefetch下一屏的组件。

preload将提升资源加载的优先级

使用preload前,在遇到资源依赖时进行加载:使用preload后,不管资源是否使用都将提前加载:可以看到,preload的资源加载顺序将被提前:

避免滥用preload

使用preload后,Chrome会有一个警告:

如上文所言,若不确定资源是必定会加载的,则不要错误使用preload,以免本末倒置,给页面带来更沉重的负担。

当然,可以在PC中使用preload来刷新资源的缓存,但在移动端则需要特别慎重,因为可能会浪费用户的带宽。

避免混用preload和prefetch

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

使用preload和prefetch的逻辑可能不是写到一起,但一旦发生对用的资源preload或prefetch的话,会带来双倍的网络请求,这点通过Chrome控制台的网络面板就能甄别:

避免错用preload加载跨域资源

若css中有应用于已渲染到DOM树的元素的选择器,且设置了@font-face规则时,会触发字体文件的加载。而字体文件加载中时,DOM中的这些元素,是处于不可见的状态。对已知必加载的font文件进行预加载,除了有性能提升外,更有体验优化的效果。

在我们的场景中,已知antd.css会依赖font文件,所以我们可以对这个字体文件进行preload:

然而我发现这个文件加载了两次:

原因是对跨域的文件进行preload的时候,我们必须加上crossorigin属性:

再看一下网络请求,就变成一条了。

W3规范是这么解释的:

那为何会有两条请求,且优先级不一致,又没有命中缓存呢?这就得引出下一个话题来解释了。

不同资源加载的优先级规则

我们先来看一张图:

这张图表示的是,在Chrome46以后的版本中,不同的资源在浏览器渲染的不同阶段进行加载的优先级。在这里,我们只需要关注DevToolsPriority体现的优先级,一共分成五个级别:

html主要资源,其优先级是最高的

css样式资源,其优先级也是最高的

CSS(match)指的是对已有的DOM具备规则的有效的样式文件。

script脚本资源,优先级不一

前三个js文件是写死在html中的静态资源依赖,后三个js文件是根据首屏按需异步加载的组件资源依赖,这正验证了这个规则。

font字体资源,优先级不一

css样式文件中有一个@font-face依赖一个font

标签: 网页设计网站开发网站建设厦门网站设计厦门网站制作网站建设厦门设计公司网站制作网站欣赏厦门网站建设公司厦门网页设计网站设计网页UI设计preload预加载页面资源网站制作厦门网站建设网站设计

本文地址: https://yihaiquanyi.com/article/3c7f4108dbdc364df87b.html

上一篇:用户体验ux就业前景用户体验UX你是如何跟踪...
下一篇:网站制作网站制造网站设计网站保养APPUI设...

发表评论