jsliang 求职系列 - 24 - 浏览器系列汇总

在整理浏览器相关题型的面试点中,产出了 8 篇文章,参考文献共 68 篇文章,一起折腾吧!

一 目录

不折腾的前端,和咸鱼有什么区别

目录
一 目录
二 前言
三 参考文献
3.1 付费网络书籍
3.2 浏览器
3.3 浏览器缓存
3.4 浏览器垃圾回收
3.5 回流与重绘
3.6 跨域
3.7 性能优化
  3.7.1 Webpack 优化
  3.7.2 其他优化
3.8 本地存储
3.9 其他

二 前言

返回目录

在整理 浏览器 相关题型的面试点中,产出了下面的 8 篇文章:

  • [x] 从输入 URL 到页面呈现

    • [x] 整体过程:DNS 解析 -> TCP 连接 -> 发送 HTTP 请求 -> 服务器响应 -> 浏览器解析渲染页面
    • [x] DNS 解析过程:浏览器缓存 -> 系统缓存(host) -> 路由器缓存 -> ISP DNS 服务器 -> 递归查询
    • [x] TCP 连接:建立连接阶段 -> 数据传输阶段 -> 断开连接阶段,3 次握手和 4 次挥手
    • [x] 发送 HTTP 请求:请求行、请求报文和请求正文,GET 和 POST 区别,HTTP 状态码
    • [x] 服务器响应:状态码、响应报头和响应报文
    • [x] 浏览器解析渲染页面:DOM 树 -> CSS 规则树 -> 渲染树(Render Tree) -> 布局渲染树(Layout tree) -> 绘制渲染树(Painting tree),回流和重绘
    • [x] 性能优化:……
  • [x] 本地存储

    • [x] Cookie
    • [x] Local Storage
    • [x] Session Storage
    • [x] IndexedDB
  • [x] 浏览器缓存

    • [x] 缓存位置:Service Worker、Memory Cache、Disk Cache、Push Cache
    • [x] 缓存过程
    • [x] 缓存机制:强缓存、协商缓存
    • [x] 缓存实例:频繁变动的缓存、不常变化的资源
  • [x] 回流和重绘

    • [x] 浏览器渲染过程
    • [x] 重绘:修改背景色/颜色、设置可见度、设置背景图……
    • [x] 回流:添加/删除 DOM 元素、改变边框/边距/宽高、改变窗口大小……
    • [x] 优化:避免频繁操作 DOM,集中操作;避免 table 布局
  • [x] 跨域

    • [x] 同源策略:什么是同源?为什么要设置跨域?
    • [x] 解决跨域的方式:JSONP、CORS、postMessage、WebSocket、Node、Nginx、其他
  • [x] 垃圾回收

    • [x] 栈垃圾回收:ESP 销毁
    • [x] 堆垃圾回收:新生代和老生代
    • [x] 新生代Scavenge 算法,对象区域和空闲区域的转换,两次回收后还存在的进入老生区
    • [x] 老生代:标记-清除、标记-整理
    • [x] 全停顿:JavaScript 线程中垃圾回收和其他脚本交替执行
  • [x] LRU 缓存淘汰策略

    • [x] 常见淘汰策略:先进先出(FIFO)、最少使用(LFU)、最近最少使用(LRU)
    • [x] 最近最少使用:如果数据最近被访问过,那么接下来被访问的概率也越高
    • [x] 实现原理:新数据插入到链表表头;链表中有数据被访问,也提升到表头;链表满后,链表尾部数据被淘汰
  • [x] 性能优化

    • [x] 从 URL 输入到页面解析过程查看性能优化点:DNS 解析、TCP 连接、发送 HTTP 请求、服务器响应、浏览器解析渲染页面
    • [x] 发送 HTTP 请求:浏览器缓存、Cookie 和 Web Storage、CDN 的使用、负载均衡
    • [x] 服务器响应:Webpack 优化、图片优化、Gzip 压缩、服务端渲染(SSR)
    • [x] 浏览器渲染解析页面:渲染过程、渲染过程优化、回流和重绘优化
    • [x] 其他:Chrome 插件可视化、长列表、preload 预加载页面

当然,还延伸到了 计算机网络 部分,例如:

后面还会持续更新的吧!加油!

三 参考文献

返回目录

参考文献共 68 篇文章,感谢前辈们的贡献。

3.1 付费网络书籍

返回目录

3.2 浏览器

返回目录

3.3 浏览器缓存

返回目录

3.4 浏览器垃圾回收

返回目录

3.5 回流与重绘

返回目录

3.6 跨域

返回目录

3.7 性能优化

返回目录

3.7.1 Webpack 优化

返回目录

2019 年文章

2018 年文章

2017 年文章

3.7.2 其他优化

返回目录

3.8 本地存储

返回目录

3.9 其他

返回目录

jsliang 的文档库由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议 进行许可。
基于 https://github.com/LiangJunrong/document-library 上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处获得。

你可能感兴趣的:(前端,javascript,浏览器,面试,求职)