技术咨询、项目合作、广告投放、简历咨询、技术文档下载 点击这里 联系博主

# 手写系列

  1. 一些简单的手写样例
  2. 手写拖动以及动画 (opens new window)

# Android面试题

# 求职面试题

  1. 深入浅出浏览器缓存机制 (opens new window)
    推荐 👍
  2. http 面试题
  3. 1 像素问题
  4. 前端跨域问题
  5. CDN 原理简析 (opens new window)
  6. Babel 原理 (opens new window)
  7. 从微信小程序开发者工具源码看实现原理(一)- - 小程序架构设计 (opens new window)
  8. 从微信小程序开发者工具源码看实现原理(二)- - 小程序技术实现 (opens new window)
  9. 从微信小程序开发者工具源码看实现原理(三)- - 双线程通信 (opens new window)
  10. 浏览器的渲染:过程与原理 (opens new window)
  11. 浏览器工作原理探究 (opens new window)
  12. 浏览器渲染原理 (二)html 中的 css、javascript、dom 之间的解析和相互阻塞关系 (opens new window)
    推荐 👍

TIP

1.  css并不会阻塞DOM树的解析
2.  css加载会阻塞DOM树渲染
3.  css加载会阻塞后面js语句的执行
4.  js(非async及defer)的下载和执行都会阻塞dom树的解析和渲染

从上面两个流程图我们可以看出来,浏览器渲染的流程如下:

  1. HTML解析文件,生成DOM Tree,解析CSS文件生成CSSOM Tree
  2. 将Dom Tree和CSSOM Tree结合,生成Render Tree(渲染树)
  3. 根据Render Tree渲染绘制,将像素渲染到屏幕上。

从流程我们可以看出来

  1. DOM解析和CSS解析是两个并行的进程,所以这也解释了为什么CSS加载不会阻塞DOM的解析
  2. 然而,由于Render Tree是依赖于DOM Tree和CSSOM Tree的,所以他必须等待到CSSOM Tree构建完成,也就是CSS资源加载完成(或者CSS资源加载失败)后,才能开始渲染。因此,CSS加载是会阻塞Dom的渲染的
  3. 由于js可能会操作之前的Dom节点和css样式,因此浏览器会维持html中css和js的顺序。因此,样式表会在后面的js执行前先加载执行完毕。所以css会阻塞后面js的执行
  1. 浏览器解析渲染流程
    推荐 👍
  2. 浏览器渲染原理 (三)repaint(重绘)和 reflow(回流)详解 (opens new window)
  3. 关于 CSS will-change 属性你需要知道的事 (opens new window)
  4. XSS 与 CSRF 攻击 (opens new window)
  5. 性能优化实践 (opens new window)
  6. Web 前端性能基础指标&计算方式 (opens new window)
  7. 10 种常用排序算法 (opens new window)
  8. 面试官:你确定多窗口之间sessionStorage不能共享状态吗??? (opens new window)
  9. 一文搞懂前后端常见登录态方案 (opens new window)

# 笔试题

  1. 腾讯面试
  2. 字节面试题 (opens new window)
    推荐 👍
  3. 算法题/笔试题
    推荐 👍
  4. 推荐好文
    推荐 👍
  5. 面试题目汇总
    推荐 👍
  6. 设计一个图片上传系统
    推荐 👍
  7. 小程序性能优化
    推荐 👍
【未经作者允许禁止转载】 Last Updated: 9/10/2024, 6:03:53 AM