总结

2022-03-23  本文已影响0人  张义飞

第一章

什么是进程?

什么是线程?

GPU,CPU?

进程是线程的一个集合,对于一个一般应用来说启动一个应用程序就是一个独立的进程,操作系统会给每个进程分配一块新的内存区域,进程与进程之间通过IPC进行通信 。当应用程序退出后,系统回收分配给这个进程的内存。 chrome浏览器采用的是多进程的架构设计。

优点:1. 某个进程意外退出不会影响其他进程

2. 安全性和沙盒,操作系统为每个进程赋予不同的权限

缺点:由于不同进程间的内存不共享,不同进程的内存常常需要包含相同的内容。

chrome会根据系统CPU和内存,去分配进程,当进程分配到一定数量后,就不会在进行分配,新打开的 Tab 会共用之前同一个站点的渲染进程

第二章

输入一个url后,浏览器做了那些事情?

第一步: 您输入的是url还是要进行搜索

第二步:网络进程开始进行 DNS查找,TLS连接 这是可能回收到301重新走刚才的流程。 (思考:DNS如何进行查找的?TLS的三次握手?301? 302?)

第三步:读取响应体,根据content-type 做出不同的反应,html就交给渲染进程,zip就交给下载进程。这个过程也会进行安全检查,corb等确保内容不会被传给渲染进程。(CORB,CORS,CORP,COOP,COPE https://web.dev/why-coop-coep/)

第四步:数据ok之后,浏览器进程就会通过IPC将数据传给渲染进程,渲染进程完成后在通知浏览器进程。这是tab加载动效就会停止了。

第三章

在使用css3 transtion做动画效果时,优先选择transform,尽量不要使用height,width,margin和padding?

第五步: 这个渲染进程做的事情才是大头,渲染器进程的核心工作是将 HTML、CSS 和 JavaScript 转换为用户可以与之交互的网页。构建dom树 -> 加载资源-> 样式计算 -> 布局 -> 绘制 -> 合成帧 (布局树 -> layer tree -> 栅格化)

第四章

如果我有个列表,我想点击删除,做个删除动画,该如何实现?

如何实现一个精准的倒计时?

[图片上传失败...(image-285fc-1647996866312)]

[图片上传失败...(image-27cb58-1647996866312)]

https://github.com/hushicai/hushicai.github.io/issues/5

浏览器专题?

  1. 浏览器缓存机制
  2. 浏览器事件循坏机制
  3. 浏览器安全
  4. 浏览器跨域问题
  5. v8引擎
上一篇下一篇

猜你喜欢

热点阅读