一字一图,领略浏览器方向的优化

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 再过半个月,Internet Explorer 就正式退役了,曾经的浏览器霸主,服役超过25年的浏览器落幕。它的落幕可能有多方面因素综合的结果,但浏览器性能和用户体验不符预期,必然是它被市场和用户所“抛弃”的重要原因。市面上的浏览器很多,据统计超过 8 0种,很多你可能都没听过,例如 greenbrowser,chromeplus(枫树),Lunascape,糖果浏览器,彗星浏览器,Gomodo Dragon,蜜蜂浏览器,Slim Browser等。不管啥浏览器,也不过有多少种浏览器,浏览器性能永远是避不开的话题,也常常是各大浏览器发布会上“卖点”。至此,浏览器性能重要性不言而喻了。

一、写在前面
再过半个月,Internet Explorer 就正式退役了,曾经的浏览器霸主,服役超过25年的浏览器落幕。它的落幕可能有多方面因素综合的结果,但浏览器性能和用户体验不符预期,必然是它被市场和用户所“抛弃”的重要原因。
市面上的浏览器很多,据统计超过 8 0种,很多你可能都没听过,例如 greenbrowser,chromeplus(枫树),
Lunascape,糖果浏览器,彗星浏览器,Gomodo Dragon,蜜蜂浏览器,Slim Browser等。
不管啥浏览器,也不过有多少种浏览器,浏览器性能永远是避不开的话题,也常常是各大浏览器发布会上“卖点”。
至此,浏览器性能重要性不言而喻了。
那么接下来,就看看关于浏览器方向的优化,以及我们具体上能做些什么。

tips:清楚本文是关于介绍浏览器方向的优化,对于读懂本文并有所收获很重要。

二、高谈阔论:“一字一图”
一字指的是“预”字,一图指的是下面这张概括浏览器方向优化的脑图。

聪慧的你,相信看出了一些东西。我们知道,不同的浏览器,它们的内核,它们的内部运行机制,可能是有所不同,这意味着在具体的优化技术上,可能要“因地制宜”,才能更好的奏效,是浏览器性能和用户体验得到提升。
尽管如此,从核心优化策略的角度看,也可以大致的将针对浏览器方向的优化分为两类:

一是,文档类优化

二是,推测类优化

也就是说,关于浏览器方向的优化,在核心优化策略上,可以分为两个方向,一是文档优化方向,二是浏览器推测性优化方向。
而在具体的技术手段上,主要分为下面这四种技术:

①页面预渲染

页面预渲染,是通过猜测你可能要访问的目标,从而在隐藏的标签页中预先渲染整个页面。当然,如果你是首次访问某个目标,这可能不理想。注意,这是通过我们的一些表示,例如输入部分关键字,此时我们还没确定访问,也还没正式访问,但浏览器通过一些线索,推测我们可能要访问的目标,预先渲染了这些页面。当用户真正访问浏览器猜中并提前渲染的目标页面时,相信会有一种这个浏览器或这个站点响应速度真快的“错觉”。我们无可否认,这是一种令大多数用户满意的表现,所以,页面预渲染很棒。

②DNS 预解析

DNS 预解析,有点页面预渲染的味道,当然,这一步通常发生在页面预渲染的前面。它是一种通过推测用户可能要访问的域名,提前对这些域名进行解析,从而缩短用户感知到的耗费时间,提升体验的手段。既然是推测提前解析,那么推测的依据是啥呢?这可能和浏览器的标签页,鼠标悬浮指向,导航历史等有关。我们知道,http 请求是存在DNS延迟的,而如果浏览器的推测正确,提前进行了 DNS 解析,这种延迟问题可以得到很好的处理。

③TCP 预连接

浏览器推测性的提前开始 TCP 连接,就是所说的 TCP 预连接,它发生在 DNS 解析之后。TCP 预连接能带来的好处是,假如浏览器的推测正确,那么可以省下一次完整的 TCP 握手实践。不要小瞧这一次握手的时间,这对机器而言,可以发生很多事,尤其是在“抢先占位”这种方向上。

④资源预取

和页面相关的解析器,例如文档解析器、样式解析器、脚本解析器等,可以和网络协议层沟通,声明预加载某些资源。某些资源,当然是指那些初始化渲染必要的资源,必要而又会阻塞继续渲染的资源。

tips1:综上图文信息,一字是四种技术手段的“预”,一图是概括浏览器方向优化的脑图。

tips2:上面提到的策略和手段,其实浏览器本身已经做了,或者说浏览器厂商已经做了。所以说这有点“高谈阔论”的意思,而我们需要清楚这些机制和特点,从而做一些更具体的,普通开发人员能做的事情,从而提升经我们手上开发的应用的性能。

具体落地:一个 link 标签
关于预加载预解析方面的技术 http 方向有,html 的 link 标签也通过 ref=“prefetch”,ref=“prerender”,ref=“dns-prefetch” 来支持。
通过 link 标签 ref 提示一些关键字,告诉浏览器为我们采用对应的优化机制。举例 link 标签在这方面的应用:


复制代码

tips:link,HTML 外部资源链接元素,规定了当前文档与外部资源的关系。

tips:注意到了吗?这些具体落地的,使用在我们开发的应用程序上的技术上,是不是和前述的高谈阔论“一字一图”息息相关。

相关文章
|
2月前
|
存储 缓存 监控
|
1月前
|
缓存 监控 前端开发
在资源加载优化中,如何利用浏览器缓存提升性能?
通过以上这些方法,可以有效地利用浏览器缓存来提升资源加载的性能,减少网络请求次数,提高用户体验和应用的响应速度。同时,需要根据具体的应用场景和资源特点进行灵活调整和优化,以达到最佳的效果。此外,随着技术的不断发展和变化,还需要持续关注和学习新的缓存优化方法和策略。
93 53
|
1月前
|
缓存 监控 测试技术
如何利用浏览器的缓存来优化网站性能?
【10月更文挑战第23天】通过以上多种方法合理利用浏览器缓存,可以显著提高网站的性能,减少网络请求,加快资源加载速度,提升用户的访问体验。同时,要根据网站的具体情况和资源的特点,不断优化和调整缓存策略,以适应不断变化的业务需求和用户访问模式。
101 7
|
4月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
70 1
|
4月前
|
Web App开发 DataWorks 安全
DataWorks产品使用合集之对于哪个浏览器的优化好
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
90 0
|
存储 缓存 前端开发
意外之惊喜!浏览器缓存优化方案,让页面加载速度飙升48.5%!
经过对浏览器缓存优化方案的调研和实现过程,我发现了一个令人意外的发现:**页面加载速度提升了整整48.5%!** 这个令人震撼的结果在微前端架构项目中具有重要意义,同时虽然本文是针对微前端架构的,但这个浏览器缓存优化方案同样适用于其他前端项目。本文将深入探讨这个优化方案,并分享调试和改进的经验。
435 1
意外之惊喜!浏览器缓存优化方案,让页面加载速度飙升48.5%!
|
JavaScript 前端开发 UED
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能2
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能
287 0
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能2
|
Web App开发 缓存 监控
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能
238 0
浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能
|
前端开发 JavaScript Java
浏览器原理 24 # 页面性能:如何系统地优化页面?
浏览器原理 24 # 页面性能:如何系统地优化页面?
117 0
浏览器原理 24 # 页面性能:如何系统地优化页面?