第一章
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
浏览器专题?
- 浏览器缓存机制
- 浏览器事件循坏机制
- 浏览器安全
- 浏览器跨域问题
- v8引擎