从解析HTML开始,破解页面渲染时间长难题

2022-11-24 0 832

全文:在责任编辑中,将重点项目高度关注页面的如上所述图形,即它从导出 HTML 已经开始。 我将积极探索可能将引致高图形天数的痛点,和怎样化解它。

责任编辑撷取自宏碁云街道社区《页面井字图形操控性手册-云街道社区-宏碁云》,译者:Ocean2022。

他们晓得图形页面是两个将伺服器的积极响应文本译成相片的操作过程。但,假如你页面的图形操控性较为差劲不然,可能将会增添相较较低的跳脱率。

在责任编辑中,我将重点项目高度关注页面的如上所述图形,即它从导出 HTML 开始。 我将积极探索可能将引致高图形天数的痛点和怎样化解它。

关键性图形方向(CRP)

关键性图形方向 (CRP) 是应用流程将标识符切换为萤幕上可表明画素的操作过程。 它有两个期,当中许多能低级语言以节省天数,但有些部份要依序顺利完成。 如下表所示图右图:

从解析HTML开始,破解页面渲染时间长难题

具体来说,除非应用流程获得积极响应,它就会已经开始导出它。 当它碰到倚赖项时,它会试著浏览它。 假如它是两个JSP文档,应用流程要在图形页面以后全然导出它,这是为何 CSS 会阻塞图形的其原因。

假如是JAVA,应用流程要:暂停导出,浏览JAVA,接着运转。 多于在那后它就能竭尽全力导出,即使 JavaScript 流程能改变页面的文本(尤其是 HTML)。 这是为何 JS 会堵塞解析的其原因。

顺利完成所有导出后,应用流程将构建文档对象模型 (DOM) 和级联JSP对象模型 (CSSOM)。 将它组合在一起获得图形树。 页面的不表明部份不会进入图形树,即使它只包含绘制页面所需的数据。

倒数第二步是将图形树进行布局, 这个期也称为回流:是计算每个图形树节点的每个位置及其大小的地方。

最后一步是绘制。 它会根据应用流程在前一期计算获得的数据对画素进行着色。

优化相关结论

因此,根据这一操作过程,他们在优化操控性方面,得出了许多结论。假如你要提升页面如上所述化图形的操控性,你需要:

减少传输的数据量减少应用流程要浏览的资源数量(尤其是堵塞的资源)减小 CRP 的长度

同时,他们会根据下面 3 个指标来衡量优化的效率:

FP(First Paint)FCP(First Contentful Paint)FMP(First Meaningful Paint)

除了图形天数之外,还有其他许多因素也需要考虑。例如,你的页面使用了多少堵塞资源和浏览它需要多长天数

操控性优化策略

鉴于他们在上面得出的结论,他们得出网站操控性优化有三种主要策略:

尽量减少通过网络传输的数据量;减少通过网络传输的资源总数;缩短关键性图形方向;

1. 减少要传输的数据量

具体来说,移除所有未使用的部份,例如 JavaScript 中无法访问的函数、带有从不匹配任何元素的选择器的样式和被 CSS 永远隐藏的 HTML 标签。 其次,删除所有重复项。

接着,我建议建立两个自动压缩操作过程。 例如,它应该从你的后端服务中删除所有注释(但不是源标识符)和每个不包含附加信息的字符(例如 JS 中的空白字符)。

顺利完成后,他们剩下的能是文本字符串。 这意味着他们能安全地应用诸如 GZIP(大多数应用流程都理解)之类的压缩算法。

最后,还有缓存。 应用流程第一次呈现页面时它不会有帮助,但它会在以后的访问中节省很多。 但,记住两点至关重要:

假如你使用 CDN,请确保支持缓存并在正确设置。与其等待资源的到期,不如 将文档的“指纹”嵌入到其 URL 中,以使本地缓存无效。

当然,应该为每个资源定义缓存策略。 很多可能将很少改变或根本不会改变,有的则是变化的很快,还有些文档包含敏感的信息(能使用“private” 防止 CDN 缓存私有数据)

2. 减少关键性资源的总数

“关键性”仅指页面正确呈现所需的资源。 因此,他们能直接跳过所有流程中没有涉及的样式和脚责任编辑件。

样式

为了告诉应用流程不需要特定的 CSS 文档,他们应该为所有引用JSP的链接设置媒体属性。 使用这种方法,应用流程将只根据需要处理与当前媒体(设备类型、萤幕尺寸)匹配的资源同时降低所有其他JSP的优先级。 例如,假如你将 media=“print” 属性添加到引用样式以打印页面的样式标记,则这些样式不会在不打印媒体时干扰你的关键性图形方向

为了进一步改进该操作过程,你还能将许多样式内联这能为他们节省了至少一次到伺服器的往返行程

JAVA

如上所述,JAVA会堵塞导出,即使它能改变 DOM 和 CSSOM。 为了避免这一点,所有JAVA标签都要用属性标记——异步或延迟。

标有 async 的JAVA不会堵塞 DOM 构建或 CSSOM,即使它能在 CSSOM 构建以后执行。 但请记住,内联JAVA无论怎样都会阻止 CSSOM,除非你将它放在 CSS 之上。

相比之下,标有 defer 的JAVA将在页面加载结束时进行执行

换句话说,使用 defer,JAVA直到页面加载事件被触发后才会执行,而 async 让JAVA在文档被导出时就会在后台运转。

3.缩短关键性图形方向长度

最后,应将 CRP 长度缩短到可能将的最小值。

作为样式标签属性的媒体查询将减少要浏览的资源总数。 script 标签属性 defer 和 async 将防止相应的JAVA堵塞导出。

使用 GZIP 压缩、压缩和归档资源将减少传输数据的大小(从而也减少数据传输天数)。

内联许多样式和JAVA也能减少应用流程和伺服器之间的往返次数。

按照最新的最佳操控性实践理念,两个网站应该做的最快的第一件事是展示 ATF 文本。 ATF 代表井字这是立即可见的区域,无需滚动。因此,最好以具体来说加载所需样式和JAVA的方式重新排列与图形相关的所有文本,而其他所有文本都暂停(既不导出也不图形)。

结尾

总而言之,网站操控性优化包含了网站积极响应的各个方面,例如缓存、设置 CDN、重构、资源优化等,但所有这些都能逐步顺利完成。 作为 Web 开发人员,你能将责任编辑作为参考,并始终记住在实验以后和后测量操控性。

应用流程开发人员尽最大努力优化你访问的每个页面的网站操控性,这是应用流程通常实现所谓的“预加载器”的其原因。 这部份流程会在你以 HTML 格式请求的资源以后进行扫描,以便一次发出多个请求并让它并行运转。 这是为何在 HTML(逐行)和JAVA标签中保持样式标签彼此靠近的其原因。

此外,试著批量更新 HTML 以避免多个布局事件这些事件不仅由 DOM 或 CSSOM 中的更改触发,而且在设备方向更改和窗口大小调整时也会触发。

点击下方,第一天数了解宏碁云新鲜技术~

宏碁云博客_大数据博客_AI博客_云计算博客_开发者中心-宏碁云

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务