前端
文章平均质量分 67
weixin_43436675
这个作者很懒,什么都没留下…
展开
-
setTimeout 实现原理
setTimeout 实现渲染进程所有运行在主线程上的任务都需要先添加到消息队列中,然后事件循环系统顺序执行消息队列eg: 解析 DOM; 改变 web 大小, 重新布局; js 垃圾回收; 异步执行 js 代码但是定时器的任务不能直接放置在消息队列中,他需要按照时间间隔来执行,因此,chrome 除了消息队列外,新增了个延时队列,在每次执行完任务后,执行延迟队列中的任务,计算出到期任务,依次执行代码实现:在每次新增一个定时器时,将定时器添加到 DelayTask 中执行消息循环时,在当前原创 2021-04-14 14:40:46 · 310 阅读 · 0 评论 -
浏览器中的消息队列和事件循环
浏览器中的消息队列和事件循环渲染进程-主线程(dom/style/layout/JavaScript input/task)系统统筹以上任务就是消息队列和时间循环系统单线程处理任务顺序执行void MainThread(){ int num1 = 1+2; //任务1 int num2 = 20/5; //任务2 int num3 = 7*8; //任务3 print("最终计算的值为:%d,%d,%d",num1,num2,num3); //任务4原创 2021-04-14 10:35:07 · 259 阅读 · 0 评论 -
前端常用设计模式
前端常用设计模式工厂模式工厂模式不关心工厂函数内部的逻辑,只关心根据用户传递的参数返回对应的实例;工厂函数隐藏复杂逻辑,只提供一个接口class Man { constructor(name) { this.name = name; } alertName() { alert(this.name); }}class Factory { static create(name) { return new Man(name); }}Factory.原创 2021-03-28 23:28:45 · 70 阅读 · 0 评论