浏览器1-发展历史
前言
浏览器工作原理这块的学习笔记和总结(找的课程学的),加深理解和记忆
对于应用,浏览器一直很重要
浏览器发展历程中三个大的进化路线
1.应用程序web化
随着云计算的普及和html5的快速发展,越来越多的应用转向了B/S及浏览器/服务端架构。
2.web应用移动化
还有技术层面的问题没有解决(如渲染流程复杂,性能不如原生,功能不如原生强大和灵活,无法离线使用,不能实时推送消息,移动端没有web应用的一级入口
3.web操作系统化
web操作系统这个概念可能有两层含义:一、利用web技术构建一个纯粹的操作系统,如chromeOS;二、浏览器底层结构往操作系统架构方向发展,这样发展肯定会导致许多的改变。(1.chrome朝着SOA即面向服务的架构(将不同的功能单元进行拆分,通过服务之间定义好协议和接口来联系起来)发展,未来很多模块会以服务的方式提供给上层应用;2.在浏览器引入对多种编程语言的支持,比如新支持的WebAssembly ; 3.简化渲染流程;4.加大对系统设备特性的支持; 5.提供对复杂web项目开发的支持。)
为什么要学习浏览器工作原理
1.评估项目web开发的可行性
2.从更高维度审视页面
从url到页面渲染的中间过程看作一个黑盒,我们也能开发,但只有真正弄懂原理后才能把知识点串起来形成知识网络,才能写出更高效的代码,才能做好优化。
3.在快节奏的技术迭代中把握前端本质
2011年到现在,各种前端新技术层出不穷,Node.js对推动前端的发展起了很大作用,浏览器功能和整个前端开发环境不足以支撑日益增长的需求,导致Node.js快速发展。当前技术还有很多缺陷,所以才有快速的更新迭代,随着脚本执行效率的不断提高、页面渲染效率的提升、开发工具链的完善,前端生态会慢慢趋于平稳。
如果了解浏览器工作机制,就能梳理出前端发展脉络,理解当前技术不足及演化方向。前端是如何针对这些缺陷做演进的呢?
1.脚本执行速度问题。针对javascript的设计缺陷和执行效率的问题,可以从以下两个途径着手
更新语言本身,如es6,es7,ts,推行起来容易
颠覆性的使用新语言,如WebAssembly,需要编译器编译,所以体积小,执行效率高,但推行需要时间
2.前端模块化开发。出现了WebComponents标准,react和vue都在渐进的适应并影响着WebComponents标准的制定
3.渲染效率问题。如果理解浏览器渲染机制,就会知道现在的渲染机制依然存在缺陷,从而尽量避开这些坑,开发出更加高效的web应用。Chrome团队也在着手改善这些缺陷。