- 博客(27)
- 收藏
- 关注
原创 浏览器渲染原理
当我们对DOM的修改引发了 DOM几何尺寸的变化(比如修改元素的宽、高或隐藏元素等)时,浏览器需要重新计算元素的几何属性(其他元素的几何属性和位置也会因此受到影响),然后再将计算的结果绘制出来。这个过程就是回流(也叫重排)。【重新排列布局,即打碎重组】reflow 的本质就是重新计算 layout 树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发 layout。为了避免连续的多次操作导致布局树反复计算,浏览器会合并这些操作,当 JS 代码全部完成后再进行统一计算。所以,
2024-01-19 00:00:03
1236
原创 Vue3响应式系统(三)
当obj.foo执行两次自增操作,会同步且连续执行两次scheduler调度函数,这意味着同一个副作用函数会被jobQueue.add(fn)语句添加两次,由于Set去重能力,最终jobQueue中只会有一项,即当前副作用函数。obj.foo++ ====> obj.foo = obj.foo + 1 ,首先会读取obj.foo的值,这就会触发get函数中的track收集函数,之后又会将obj.foo的值赋值给obj.foo,这时又会触发trigger触发函数。此时,便不会无限循环,而是只执行一次。
2024-01-16 23:27:12
1016
原创 Vue3响应式系统(二)
在副作用函数执行的时候,将当前副作用函数压入栈中,执行完毕后将副作用函数弹出,activeEffect始终指向栈顶的副作用函数。这样便不会出现相互影响的情况了。出现问题了,当我们修改text的值的时候,我们希望的是触发effectFn1,而现在是触发effectFn2,并没有执行effectFn1。,内层副作用函数会覆盖activeEffect,并且永远不会恢复,为了解决这个问题,我们需要一个。函数注册的副作用函数,意味着。
2024-01-15 23:29:47
517
原创 Vue3响应式系统(一)
副作用函数指的是会产生副作用的函数。例如:effect函数会直接或间接影响其他函数的执行,这时我们便说effect函数产生了副作用。
2024-01-15 22:17:35
1205
原创 浅拷贝和深拷贝
浅拷贝:按位拷贝对象,它会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝。但只是复制对象空间而不复制资源。赋值:一个对象赋值给一个新变量的时候,赋值的是对象在栈中的地址,而不是堆中的数据,两个对象是相互影响联动的。、任意的函数以及 symbol 值,在序列化过程中会被忽略。①基本类型:拷贝的就是。②引用类型:拷贝的就是。
2024-01-12 14:45:01
414
原创 Restful API规范
RESTful API 是应用程序接口 (API) 的一种架构风格,它使用 HTTP 请求来访问和使用数据。该数据可用于数据类型,这些数据类型是指有关资源的操作的读取、更新、创建和删除。(也称为 RESTful Web 服务或 REST API)基于表示(REST),它是。
2024-01-07 17:17:55
26702
2
原创 Three.js第四章——光源对物体表面影响
MeshBasicMaterial不受光照影响//MeshLambertMaterial受光照影响。
2023-12-27 23:44:06
585
1
原创 Three.js第三章——透视投影相机
生活中用相机拍照,你相机位置不同,拍照结果也不同,threejs中虚拟相机同样如此。比如有一间房子,你拿着相机站在房间里面,看到的是房间内部,站在房子外面看到的是房子外面效果。想象为一个房间,然后根据相机位置和长方体位置尺寸对比,判断两者相对位置。你可以发现设置相机坐标(200, 200, 200),位于长方体外面一处位置。,具体说相机镜头对准哪个物体或说哪个坐标。,只有视锥体之内的物体,才会渲染出来,视锥体范围之外的物体不会显示在Canvas画布上。你用相机拍照你需要控制相机的。
2023-12-21 22:54:45
2786
原创 基于HTTP基础所提出的问题
HTTP 的底层是 TCP/IP。所以 GET 和 POST 的底层也是 TCP/IP,也就是说,。所以说,它们的本质是相同的。GET 和 POST 之所以产生,要通过HTTP的规则和浏览器/服务器的限制进行区分,使它们在应用过程中体现出不同。
2023-12-21 21:28:37
1122
原创 Three.js第二章——前置知识
Scene是场景对象,所有的网格对象、灯光、动画等都需要放在场景中,使用 new THREE.Scene初始化场景,下面是场景的一些常用属性和方法。
2023-12-20 23:20:28
597
1
原创 TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议和网络协议。一般使用TCP/IP代指整个TCP/IP协议簇。协议簇是啥呢?简单来说就是一系列协议的综合。如下两个图:这个协议簇其实包含很多其他的协议,但是这里TCP和IP是它们中的代表,不仅仅只有TCP和IP。IP、ICMP、TCP、UDP、TELNET、FTP、HTTP等等都属于TCP/IP协议。
2023-12-19 21:11:57
958
1
原创 Ajax、Fetch、Axios三者的区别
注意:Ajax 是发请求的一种方式,或者把 XMLHttpRequest 与 Ajax 划等号,其实这是错误和片面的。我们使用这种方式实现网络请求时,如果请求内部又包含请求,以此循环,就会出现回调地狱。
2023-03-09 09:26:39
258
原创 Promise是什么与使用方法?
接收一个参数——函数。:resolve,reject,分别表示后的回调函数和异步操作执行的回调函数。为一个异步操作,延时2秒后输出语句。接收一个参数,是函数,并且会拿到我们在runAsync中调用resolve时传的的参数。
2023-03-08 19:11:11
175
原创 说一说JS数据类型有哪些,区别是什么?
特点就是数据涵盖的范围大,能够解决超出普通数据类型范围报错的问题。普通对象,数组,正则,日期,Math数学函数。基本数据类型:存在栈中,占据空间小,频繁使用。
2023-03-08 16:17:49
156
转载 回流与重绘
回流的代价比重绘的代价要高。有时即使仅仅回流一个单一的元素,它的父元素以及任何跟随它的元素也会产生回流。现代浏览器会对频繁的回流或重绘操作进行优化: 浏览器会维护一个队列,把所有引起回流和重绘的操作放入队列中,如果队列中的任务数量或者时间间隔达到一个阈值的,浏览器就会将队列清空,进行一次批处理,这样可以把多次回流和重绘变成一次。
2023-03-07 08:34:50
58
转载 css基础之position篇
请注意,粘性元素“粘附”到其最近的祖先,该祖先具有“滚动机制,即使该祖先不是最近的实际滚动祖先。:用于设置元素在文档中的位置。top(顶部)、right(右侧)、bottom(底部)、left(左侧)属性确定元素的最终位置。:(静态定位)默认值,没有定位。IE5.5及NS6尚不支持此属性。偏移不会影响任何其他元素的位置。在打印文档中,元素放置在。
2023-03-02 12:03:58
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人