随笔分类 - 浏览器
摘要:浏览器缓存 基本的原理就是: 浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识 浏览器每次拿到返回的请求结果都会将该结果和缓存标识存入浏览器缓存中 按位置分类 Server worker Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。使用
阅读全文
摘要:浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。 整个渲染流程分为多个阶段,分别是: HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画。每个
阅读全文
摘要:步骤 在最开始的时候,渲染主线程会进入一个无限循环 每一次循环会检查消息队列中是否有任务存在。如果有,就取出第一个任务执行,执行完一个后进入下一次循环;如果没有,则进入休眠状态。 其他所有线程(包括其他进程的线程)可以随时向消息队列添加任务。新任务会加到消息队列的末尾。在添加新任务时,如果主线程是休
阅读全文
摘要:Cookie Cookie最初是为了解决http无状态的问题,设置Cookie的方式有两种:服务端通过在HTTP响应头中的Set-Cookie字段设置,以及在前端通过JS的document.cookie设置。在浏览器在拥有Cookie之后,每次向服务器发送请求时,都会自动携带对应地址的Cookie。
阅读全文
摘要:概述 重排: 部分渲染树(或者整个渲染树)需要重新分析计算,重新生成布局,重新排列元素。 重绘: 由于节点的某些属性发生改变或者样式发生改变,例如改变背景色或者文本内容时,屏幕上的部分内容需要更新,表现为某些元素的外观被改变。 单单改变元素的外观,肯定不会引起网页重新生成布局,但当浏览器完成重排之后
阅读全文