2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

一道浏览器面试题,就能看出你的前端功底

  • 2019-08-15
  • 本文字数:1240 字

    阅读完需:约 4 分钟

一道浏览器面试题,就能看出你的前端功底

作为前端工程师,几乎每天都要和浏览器打交道。


理解浏览器是如何工作的,对我们做业务的技术选型、架构设计等都有非常重要的作用,让我们可以准确评估 Web 开发项目的可行性,站在更高维度审视页面,以及在快节奏的技术迭代中把握住问题的本质。


可是我发现,大部分前端工程师对浏览器的理解,其实并不深入透彻。


比如,面试时我通常会问候选者一个问题:“在浏览器里,从输入 URL 到页面展示中间发生了什么? ”


这道题涉及到网络、操作系统、Web 等一系列的知识,如果你要开发流畅的页面,或者诊断 Web 页面中的性能问题,那你就需要了解 URL 是怎么变成页面的,只有弄懂这些之后,你才可以站在全局的角度定位问题或者写出高效的代码。


但遗憾的是,大多数人只能回答其中零散的知识点,并不能将这些知识点串联成线,无法系统全面地回答。


也难怪,浏览器确实会涉及很多概念,不仅繁多而且琐碎,包括网络、渲染、安全,以及大前端相关的大量概念。比如,首屏的显示就涉及了 DNS、HTTP、DOM 解析、CSS 阻塞、JavaScript 阻塞等技术因素,其中一项没处理好就可能导致整个页面的延时。如果没有系统的学习,很容易出现遗漏和盲点。


所以,我推荐大家看看极客时间的专栏《浏览器工作原理与实践》


作者是前盛大创新院高级研究员李兵。08 年的时候,他就基于 Chromium 和 IE 发布了一款双核浏览器:太阳花。这是国内第一款双核浏览器,你在使用它的时候,除了能享受到 Chrome 的快捷之外,还能兼容只支持 IE 的站点。可能现在的你不觉得有多厉害,但在当时,简直是前端的爆炸新闻。这款浏览器,在没有任何宣传的情况下,日活达到了 20 多万。


之后李兵去了盛大创新院,参与研发 WebOS 项目,基于 WebKit 内核打造一个能和安卓并存的操作系统。


后来,他又到了顺网科技,和团队打造了一款给全国网吧使用的“F1 浏览器”,日启量达到 2000 万。大家都知道,网吧的电脑环境异常复杂,页面劫持经常发生,再加上每天千万级别的启动量,对页面安全、加载速度和流畅度都有很高的要求。


可以说,这些经历,让李兵在浏览器核心技术上,有独到理解和独家经验。


因此,他来写浏览器相关的专栏,也一定与众不同,更具实操性。据他说,在《浏览器工作原理与实践》专栏里,想带你重新认识浏览器,把网络、页面渲染、JavaScript、浏览器安全等知识串联起来,从而让你对整个前端体系有全新的认识。


再送你一张李兵制作的知识框架图,让你对浏览器所覆盖所有知识点有所认知。


李兵是如何讲解浏览器的?

专栏分为 7 大模块,共 35 篇文章,覆盖 JavaScript 执行机制、引擎 V8 的工作原理、Web 页面中的事件循环系统、HTTP/1、HTTP/2 和 HTTP/3 的介绍、以及最近比较火的 PWA 的工作原理等内容。


最吸引我的,是李兵会自己绘制原理图和流程图,用通俗易懂的语言,图文并茂的展现形式,带你层层深入浏览器,看懂前端本质。


比如,下面是“渲染流水线的总结图”



线程之间共享进程中的数据示意图:



下面是专栏的详细目录:



《浏览器工作原理与实践》限时订阅福利


戳我订阅,早鸟优惠¥68,原价¥99


优惠最后 2 天


2019-08-15 15:073357

评论

发布
暂无评论
发现更多内容

带你全面的了解二叉树

华为云开发者联盟

数据 二叉树 存储 数据检索 结点

第 3 章 -《Linux 一学就会》- 文件的基本管理和XFS 文件系统备份恢复

学神来啦

Linux 运维 文件存储 linux云计算

爱奇艺 TensorFlow Serving 内存泄漏优化实践

爱奇艺技术产品团队

内存

架构师知识笔记 4

felix徐

车联万物,有Z-ONE SOA+AIoT!

SOA开发者平台

AIOT SOA 软件定义汽车 OTA

他说:“只是单纯的想用Python收集一些素颜照,做机器学习使用”,“我信你个鬼!”

梦想橡皮擦

9月日更

用明道云搭建一个住宅式物业管理系统

明道云

网络协议之:WebSocket的消息格式

程序那些事

网络协议 HTTP websocket 程序那些事

Linux创建/删除用户组

在即

9月日更

干货打包!最新实时同步5大应用场景,4种实现方案分享(有彩蛋)

tapdata

『 JS算法-力扣557题』反转字符串中的单词 III

德育处主任

JavaScript 算法 大前端 js js算法

深入 iOS 静态链接器(一)— ld64

字节跳动终端技术

ios 移动终端 火山引擎 静态链接器

EMQ 映云科技加入信通院可信开源社区共同体,加速共建开源生态

EMQ映云科技

云计算 开源 物联网 开源社区 信通院

告别Kafka Stream,让轻量级流处理更加简单

阿里巴巴云原生

kafka 阿里云 云原生 ETL

如何用 Java 判断一个给定的数是不是素数

HoneyMoose

把低代码开发平台推给开百货店的朋友,对他有帮助吗?

低代码小观

低代码 企业 企业管理 管理者 管理工具

车联万物,有 Z-ONE SOA+AIoT!

SOA开发者

软件定义汽车

谁说GitHub才能出经典?来自牛客网的Java程序员逆袭手册才是YYDS

Java 程序员 面试 计算机 牛客网

应用层软件开发的一些总结

SOA开发者

技术分析| 音视频服务集群如何实现全球多中心化调度

anyRTC开发者

区块链 音视频 WebRTC 中心化调度

架构师知识笔记3

felix徐

全球最大规模对话生成模型问世!百度发布PLATO-XL,让机器像人一样思考和对话

科技热闻

Redis分布式锁,你用对了吗?

Java 架构 面试 分布式 后端

Java 中的 NaN

HoneyMoose

CANN 5.0硬核技术抢先看

华为云开发者联盟

架构 AI 计算 CANN 异构计算架构

WeTest云手机升级,支持iOS 15全新系统

WeTest

如何才能成为一名合格的架构师?

秋天

架构师

什么是嵌入式系统及其应用?

cdhqyj

嵌入式

架构实战课程 模块四作业

Frank

VEGA:诺亚AutoML高性能开源算法集简介

华为云开发者联盟

机器学习 AutoML 网络结构 VEGA AutoML算法

恒源云(GpuShare)_手把手教你如何终端登陆实例

恒源云

一道浏览器面试题,就能看出你的前端功底_大前端_李兵_InfoQ精选文章