首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
浏览器原理
青草酱
创建于2021-07-15
订阅专栏
浏览器原理
等 1 人订阅
共25篇文章
创建于2021-07-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
词法作用域、作用域链、闭包
词法作用域、作用域链、闭包 和函数的调用位置没有关系。 一、作用域链 作用域有全局作用域、函数作用域、块级作用域三种。 例子: 这段代码在编译和执行过程如下: 编译: 创建全局执行上下文,foo函数,
为什么要使用沙箱
现在chrome浏览器如上,渲染进程放在沙箱中,浏览器主进程、网络进程、GPU进程等都放在浏览器内核中,渲染进程和浏览器内核之间通过IPC进行通信。 原因: 网络进程负责资源的下载,谁也不知道下载的资
跨站点请求伪造-CSRF
CSRF就是恶客通过用户的登录状态,在第三方站点实现攻击行为的攻击方式。 分为三种: get请求 post请求 诱使用户点击链接 一、get请求 当用户登录一个受信任的网站,在登录黑客网站,黑客网站的
前端攻击-XSS
XSS攻击叫做跨站脚本攻击,一共有三种:存储型XSS、反射型XSS、DOM型XSS。 一、存储型XSS 存储型XSS的过程是这样的: 攻击者将一段恶意代码注入到服务器。 当用户请求含有恶意代码的页面时
跨域资源共享CORS
由于同源策略的限制,xhr;不能进行不同源之间的请求,但是在实际情况中,我们经常要进行跨域请求,因此就出现跨域资源共享。 跨域请求被分为两种:简单请求和非简单请求。 一、简单请求 简单请求就是请求方式
安全策略
同源策略:域名、端口、协议都相同的网站被称为同源。 同站点:协议和根域名相同的网站被称为同站点。 同源策略限制三个层面: 页面层面。相同源之间可以相互访问资源、操作DOM,不同源就受同源策略的限制不能
setTimeout
在渲染进程中有一个定时器触发线程,该线程的主要工作就是计时。比如: 这段代码设置的时间为0毫秒,并不是说它立即执行,它执行的过程时这样的: ja引擎在执行整个文件的代码时,遇到了setTimeout这
同步任务、异步任务、宏任务、微任务
渲染进程中的主线程是一个单线程,同一时间只能执行一个任务,所以渲染进程中维护了一个消息队列,用于存放要执行的任务,后来的任务总是被添加到队列的尾部等待执行,所以后面的任务需要等待一段事件才会执行,但是
渲染进程中的各线程
浏览器至少有四个进程: 浏览器主进程 GPU进程 网络进程 渲染进程 其中渲染进程又有五个线程: 主线程(js引擎线程) GUI渲染线程 事件触发线程 定时器触发线程 http请求线程 一、主线程 主
v8执行js代码的过程
一、编译型语言和解释型语言 编译型语言的编译过程: 对于代码进行词法分析、语法分析,生成AST树,然后进行代码优化,再生成处理器能处理的机器码。如果编译成功,则生成一个二进制文件,否则报错。 解释型语
chrome的垃圾回收
v8引擎的垃圾回收可分为栈内存回收和堆内存回收。 一、栈内存回收 在执行js代码的流程中,js引擎会为函数创建执行上下文,并压入调用栈中。 有一个指针指向调用栈的栈顶,用于记录当前执行状态。 当一个函
this指向
this的绑定方法一共有四种: 默认绑定 隐式绑定 显示绑定 new绑定 一、默认绑定 例如: foo函数的this就默认绑定到了window对象上,在严格模式中,this为undefined。 二、
JS的编译、执行、调用栈、栈溢出
js代码的执行流程:编译----> 执行。 一、案例一 例如: 这段代码在执行前会先编译。 编译的过程: 创建一个该段代码对应的执行上下文,执行上下文有变量环境、词法环境。 从上而下的开始编译。 当遇
双缓存、DOM、虚拟DOM
一、双缓存 为什么要使用双缓存? 一个图形从计算到最后生成是一个需要大量计算的过程,所以显示器很难一次从显示缓冲区中取到完整的数据,都是一部分一部分取到的,而数据的写入也是分多次的,所以如果直接写入到
页面性能
一、加载阶段 分析这张图,chrome在接收html字节流时,会在网络进程中开出一个预解析线程,去扫描html文件中的js、css文件,进行提前的下载。 html、css、js文件的下载都影响页面的加
DOM、CSSOM、js的关系
一、DOM和js 当html代码中带有插入的js脚本时: 当HTML解析器遇到js代码时,会暂停DOM的解析,转而由js引擎去执行这段代码。 当html代码中带有外部的js文件时: 当HTML解析器遇
重排、重绘、合成
重排、重绘、合成是三种不同的渲染路径,路径越长,生成图像花费的时间就越长。 一、重排 当通过js或者css修改元素的几何信息后,就会触发重排。 为什么呢? 因为在修改了元素的几何信息之后,也就意味着在
对布局树进行分层,以及图层的绘制
一、分层 拥有了布局树以及各节点的布局信息,还不能进行页面的显示,因为页面中会存在一些设置了3D变换、z-index等属性,所以渲染引擎还需要为布局树中的一些特别的节点生成一个图层,并组成一个图层树。
布局阶段
在生成DOM树和CSSOM树之后,还是不能直接显示页面,它还需要生成布局树和布局计算。 一、创建布局树 在DOM树中,有很多元素是不能显示在页面上的,比如document、html、title、hea
构建CSSOM树
构建CSSOM树的过程和构建DOM的过程时类似的,不过在将css转换成浏览器能够识别的结构document.styleSheets后,还需要进行一些操作。 一、转换样式表中的属性值,使其标准化 为什么
下一页