前端性能优化(一)——浏览器工作原理

注意:免费节点订阅链接已更新至 2025-12-16点击查看详情

作为一个前端,经常会有老板或测试给我们提出某个地方加载太慢了,需要优化一下。我们自己的网站也一样,加载时间过长,自己都不耐烦,对于网页优化是很常见的,今天我们先介绍下网页加载原理。

一、浏览器简介

想要了解浏览器的工作原理,我们必须清楚浏览器的组成有哪些?以及各个部分功能。

浏览器组成部分如图所示:

各部分的功能及意义:

  • 用户界面:浏览器的界面,有标签页、地址栏、前进、后退、刷新、收藏等。除了请求到的内容页面。
  • 浏览器引擎:用来查询和操作渲染引擎的接口。
  • 渲染引擎:也叫做 “浏览器内核” ,用来解析 html、css 并将结果以网页的形式显示,不同浏览器内核不同,同理渲染引擎也不同。
  • 网络:用来网络调用,如前后端数据交互中的http请求。
  • js 解释器:用来解释执行js代码。
  • UI 后端:绘制基础原件,如组合框与窗口,提供平台无关的接口,内部使用操作系统的相应实现。
  • 数据存储:属于持久层。浏览器需要把所有数据存到硬盘上,如 cookie、图片、css 等。

二、浏览器工作流程

我们在浏览器用户界面的地址栏中,输入我们需要访问网站地址url后回车。

浏览器工作流程:

  1. 构建请求:浏览器开启网络请求线程,向服务器发送完整的http请求。
  2. 查找缓存:真正发起网络请求之前,浏览器会先在数据存储中查询是否有需要请求的文件。如果没有任何缓存,说明第一次请求,则进入网络请求过程。当浏览器有缓存的时候,会拦截请求,返回缓存,拦截请求。缓存优点:缓解服务器压力,提升性能,实现快速加载资源。
  3. 准备IP地址和端口:通过 URL 地址获取 ip 地址和端口信息,通过 DNS 解析返回域名对应的 ip 和 port ,浏览器也提供了 dns 数据缓存,通常 url 没有指明端口号,则默认80。
  4. 等待TCP队列:chrome 有个机制,同一域名下同时最多只能建立6个TCP连接,如果同时有10个请求发生,其中4个就会进入等待队列,直至进行中的请求完成,如果小于6个,则直接进入TCP 连接。
  5. 建立TCP连接:浏览器与服务器之间通过 TCP 建立连接。TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
  6. 发送http请求:连接建立成功之后,浏览器就可以与服务器之间通讯了。浏览器会向服务器发送请求信息,包括请求方法、请求 URL、http 版本协议。
  7. 服务器处理请求:服务端收到请求信息以后,会根据浏览器的请求信息返回结果,返回结果中包含三部分:响应行、响应头、响应体。响应行内包含状态码,告诉浏览器处理结果,http状态码有很多。响应头包含服务器自身的一些信息,响应体就包含了网页的 html 实际内容。
  8. 服务器响应和断开连接:通常服务器向浏览器返回请求数据之后,就会关闭连接,经过四次分手之后,就断开连接了。

浏览器中http请求阶段如图:

http请求和响应处理,是前端与后端数据交互的时候经常使用的部分。

三、浏览器渲染过程

渲染引擎通过网络获得请求文档内容(以8k分块的方式完成),然后开始:解析html为DOM树 > 渲染树结构 > 布局渲染 > 绘制渲染树。

具体解析过程为:

开始解析 html 内容,将标签转化为 DOM 节点,然后解析它外部的css文件以及 style 中的样式信息。css 样式信息和 html 标签来构建渲染树。渲染树是由一些包含颜色大小等盒子组成的,按照从上到下,从左到右的方式显示,渲染树构建好之后,执行布局过程,将每个节点确定在屏幕上的确切坐标,最后使用 UI 后端层绘制每个节点。

举例说明下浏览去解析 html、css、js 的过程:

  1. 浏览去地址栏输入地址后回车,假设第一次访问,浏览去向服务器发送请求,返回html文件。
  2. 浏览去载入html代码,解析head中的link引入的外部css文件。
  3. 浏览器发出css文件请求,服务器会返回css文件。
  4. 浏览器继续载入body部分代码,css文件接收到之后,就可以渲染页面。
  5. 遇到img标签引入图片,会立马向服务器发送请求,此时不等待返回的图片,而是继续向下渲染。
  6. 浏览器接收到返回图片文件,由于图片占用一定面积,影响后边排版,所以浏览去需要回过头重新渲染这部分代码。
  7. 浏览器发现script标签,内部包含的js代码,就会立即执行。
  8. js脚本执行js语句,如果js语句操作的是DOM元素,浏览器就需要重新渲染这部分代码。
  9. 等到</html>到来,页面第一次渲染就完成了。
  10. 如果用户点击"换肤"按钮,js让浏览器换一个css文件,此时浏览去又会向服务器发送请求。
  11. 等浏览器返回新的css文件之后,重新渲染页面。

需要注意:

  • js不能并行下载和解析(阻塞下载)。
  • 当引用了JS的时候,浏览器发送1个js request就会一直等待该request的返回。因为浏览器需要1个稳定的DOM树结构,而JS中很有可能有代码直接改变了DOM树结构,比如使用 document.write 或 appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以 就会阻塞其他的下载和呈现。
  • JS、CSS中如有重定义,后定义函数将覆盖前定义函数。

先了解网页的请求,加载,解析过程,然后再考虑到底该如何优化网页性能呢?

跨越数字边界:科学上网后值得探索的全球优质网站指南

引言:当网络不再设限

在这个信息爆炸的时代,互联网本应是无国界的知识海洋。然而由于各种原因,许多地区的网民发现自己被困在信息的"孤岛"上——他们能看到的水域只是整片海洋的一角。科学上网技术就像一艘潜水艇,帮助求知者突破表面限制,探索深海的奥秘。但真正重要的是:当我们拥有了这艘潜水艇,应该用它去看哪些值得探索的风景?

本文将为您呈现一份精心筛选的全球优质网站清单,这些平台或能拓展您的社交圈层,或能丰富您的知识储备,或能提升您的工作效率,更重要的是——它们都能帮助您建立更完整的世界观。

第一章 社交版图的重构

当您第一次通过科学上网接触到全球社交网络时,那种感觉就像突然获得了参加世界派对的邀请函。

Facebook作为拥有29亿月活用户的超级平台,早已超越了单纯的社交功能。在这里,您可以加入各种兴趣小组——从北欧神话研究到热带植物栽培,全球同好者的智慧碰撞常常能擦出意想不到的火花。一位在深圳工作的设计师告诉我,他通过Facebook结识的比利时建筑师,为他提供了改造城中村的全新视角。

Twitter的魔力在于它的即时性和简洁性。当重大事件发生时,这里往往是信息的第一落点。有趣的是,不同地区的热门话题常常形成鲜明对比——当某地用户在热议明星绯闻时,另一端的用户可能在讨论最新的量子计算突破。这种对比本身就能让人对世界多样性有更立体的认识。

Instagram则像是一个视觉化的地球村。关注一位冰岛摄影师,您每天都能看到冰川的渐变;追踪一位肯尼亚野生动物保护者,您将获得最鲜活的大草原影像。这种直接的视觉冲击,比任何地理教科书都更能培养"世界公民"意识。

第二章 影像世界的全景呈现

视频平台是文化传播最生动的载体,也是科学上网用户最常访问的资源之一。

YouTube堪称当代亚历山大图书馆,这里的知识密度超乎想象。从MIT的公开课到非洲部落的生存技能,从量子物理讲解到中世纪铠甲制作工艺,无所不包。我特别推荐那些小众领域的专业创作者——比如一位专注修复古籍的日本匠人,他的每期视频都是对"匠人精神"的最佳诠释。

Netflix的价值不仅在于娱乐,更在于它提供了观察其他社会的窗口。通过观看不同国家制作的原创内容,您能直观感受到文化差异——比如韩国丧尸片中对集体主义的反思,或者北欧犯罪剧中渗透的福利社会焦虑。这些内容本身就是最好的跨文化研究素材。

Vimeo则是创意工作者的圣地。这里没有算法推荐的洗脑神曲,只有精心打磨的视觉作品。一位北京广告导演告诉我,他通过Vimeo追踪全球顶尖广告作品的习惯,直接提升了他的创意水准。

第三章 学术资源的无界获取

对求知者而言,能够自由获取全球学术资源可能是科学上网最重要的价值。

Google Scholar彻底改变了我的研究方式。曾经需要付费数百美元才能阅读的论文,现在通过机构认证或作者主页往往能够获取。更重要的是,它的"相关文章"功能能让研究像树枝一样自然延伸——上周我就这样意外发现了一位巴西学者对《红楼梦》的独特解读。

ResearchGate则把学术交流变成了社交网络。在这里,您可以给诺贝尔奖得主留言讨论,也可能收到发展中国家研究者的合作邀请。我认识的一位生物医学研究生,正是在这里找到了解决实验难题的关键建议。

JSTOR就像一座数字化的古老图书馆。当您翻阅1920年的《经济学季刊》或者18世纪的植物图鉴时,那种与历史对话的震撼是任何当代资料都无法替代的。

第四章 新闻视角的全球校准

单一信源的新闻获取就像只用一只眼睛看世界,科学上网让您拥有立体视觉。

BBC News的全球记者网络保证了报道的广度,而其对新闻伦理的坚持则提供了难得的深度。特别值得关注的是其"慢新闻"(Slow News)栏目,在快餐式新闻泛滥的时代,这种深度调查显得尤为珍贵。

《纽约时报》的专栏作家们构成了当代最强大的评论阵容。无论是Thomas Friedman的地缘政治分析,还是Paul Krugman的经济学随笔,都能帮助读者建立分析复杂问题的框架。

CNN的实时报道能力无与伦比。在突发事件中,其全球直播系统往往能提供第一手画面。但更值得注意的是其事实核查(Facts First)栏目,在这个假新闻泛滥的时代堪称一剂解毒剂。

第五章 技术前沿的同步追踪

对科技从业者而言,保持与全球技术社区同步不是奢侈,而是必需。

GitHub早已超越代码托管平台的范畴,成为开源运动的神经中枢。在这里,您可能发现一位瑞典高中生开发的革命性算法,或者参与一个跨国协作的区块链项目。我见证过最动人的一幕:来自以色列和巴基斯坦的开发者在一个开源项目里并肩解决问题。

Stack Overflow是程序员们的"急救中心"。无论多冷门的技术问题,在这里往往都能找到答案。但更深层的价值在于其投票机制形成的知识筛选系统——最佳答案往往经过全球同行的检验。

Mozilla Developer Network(MDN)则是Web开发者的圣经。其文档之详尽、更新之及时,使其成为行业标准参考。特别推荐其"浏览器兼容性"数据,能节省开发者无数调试时间。

第六章 商业视野的全球拓展

电子商务平台是最能直观感受全球经济脉搏的窗口。

eBay就像一个全球化的跳蚤市场。在这里,您可以淘到日本昭和时期的古董玩具,也能发现南非手工艺人的独特作品。一位北京的古董商告诉我,他在eBay上结识的荷兰收藏家彻底改变了他对亚洲艺术的认知。

Amazon的全球商店让"地球村消费者"成为现实。但更值得关注的是其出版平台——在这里,印度经济学家的专著可能与美国智库报告并列畅销榜,这种知识传播的民主化正在重塑出版业。

Etsy则证明了小众审美的商业价值。当您看到立陶宛的木雕师或者秘鲁的纺织艺人通过这个平台获得全球客户时,就会明白互联网如何正在重写传统手工艺的命运。

第七章 知识疆域的无限延伸

在线教育平台让哈佛教授的课堂和非洲偏远村庄的孩子之间,只差一个网络连接。

Coursera与全球200多所顶尖大学的合作项目,让系统学习常春藤课程成为可能。我特别欣赏其"专项课程"(Specialization)设计——通过系列课程掌握一个领域的核心技能,比碎片化学习高效得多。

edX的微硕士(MicroMasters)项目更是开创性地模糊了正式教育与继续教育的界限。一位上海的程序员通过edX获得MIT认证的微硕士后,成功申请到了加拿大高校的博士项目。

TED的价值在于其精心筛选的思想密度。从神经科学到诗歌创作,每个18分钟的演讲都是认知的烟花。建议关注非英语母语讲者的分享,他们往往能带来完全不同的思维角度。

第八章 娱乐文化的多元体验

娱乐网站的全球访问不只是为了消遣,更是理解不同文化的捷径。

Twitch上的游戏直播展现了惊人的文化差异——日本玩家的《动物森友会》社区充满治愈系设计,而巴西玩家的《FIFA》对战则洋溢着桑巴节奏。这些差异本身就是生动的文化人类学素材。

Steam的游戏评论区经常成为跨文化交流的奇观。在一款北欧独立游戏下,您可能同时看到俄罗斯玩家讨论叙事哲学,阿根廷玩家分析美术风格,而韩国玩家则在研究速通技巧。

Reddit的subreddit设计让垂直兴趣找到深度社群。从古希腊语学习到无人机竞速,每个小众爱好都能在这里找到知音。特别推荐r/AskHistorians板块,其回答质量堪比学术论文。

结语:数字公民的自我修养

科学上网不是目的,而是手段。这份清单中的网站价值不在于它们被"墙"阻隔,而在于它们代表了人类文明在不同领域的精华成果。当我们访问这些平台时,实际上是在参与一场全球对话,是在用数字化的方式践行"读万卷书,行万里路"的古训。

真正的数字公民应当具备这样的自觉:技术赋予的自由越大,责任也就越重。我们既要避免陷入信息茧房,也要警惕文化消费主义。希望这份指南不仅能帮您发现优质网络资源,更能启发您思考:在这个互联时代,我们该如何既保持根系,又伸展枝叶?

正如一位数字人类学家所说:"互联网最伟大的发明不是某种技术,而是它让'陌生人'这个概念发生了本质改变。"当您通过这些网站与世界各地的人交流时,您正在亲身体验这种改变——那些屏幕另一端的"陌生人",很可能成为您理解这个世界的重要坐标。

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-3984.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档