首页 > 其他分享 >基于 Performace 分析事件循环

基于 Performace 分析事件循环

时间:2025-01-13 14:55:15浏览次数:1  
标签:基于 定时器 console log 0ms JavaScript 循环 Performace setTimeout

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。

本文作者:千寻

什么是事件循环?

我们为什么需要事件循环?对于 JavaScript 是一门单线程语言我们是肯定的,JavaScript 单线程的特性保证了渲染和 JavaScript 的正常运行,但同时也存在一定的限制。理想情况下我们希望所有任务是串行执行的,假设串行中存在一个耗时很多的任务时,会阻塞后续任务的运行,这种情况我们怎么去解决呢?这个时候就需要我们的事件循环来处理了。

file

让人意外的setTimeout

菜鸟教程:setTimeout() :在指定的毫秒数后调用函数或计算表达式

console.log(1); 
setTimeout(()=>{ 	
  console.log(2); 
},0) 
for (let i = 0; i < 5000; i++) {  	
  let sum = 0;
  sum += i;  
} 
console.log(3); 

猜猜上面这段代码执行结果是多少呢?根据 Event Loop 机制我们知道答案是1、3、2。但是针对这段代码中有一个疑问点,0ms 是指 0ms 后执行 callback 吗?答案是否定的,定时器任务被维护在定时器线程中,添加一个定时器时开始计时这个任务,0ms 后会将 callback 添加到事件队列中,

标签:基于,定时器,console,log,0ms,JavaScript,循环,Performace,setTimeout
From: https://www.cnblogs.com/dtux/p/18668560

相关文章

  • php基于web的动漫插画分享网站
    PHP基于Web的动漫插画分享网站在动漫文化蓬勃发展的当下,动漫爱好者们渴望有一个专属的交流空间来分享、欣赏精美的动漫插画。PHP基于Web的动漫插画分享网站应运而生,它以便捷的功能、友好的界面,为广大动漫迷搭建起一座汇聚创意与热爱的线上平台,促进动漫插画艺术的传播......
  • 基于协同过滤算法与AI智能咨询的学生选课推荐系统设计与实现(源码+定制+开发)课程智能推
    博主介绍:  ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生......
  • 基于YOLOv8与CGNet的鸟类智能识别系统 深度学习图像分类 鸟类目标检测与分类 图像特征
    博主介绍:  ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生......
  • springboot基于微信小程序的顶岗实习管理系统
    SpringBoot基于微信小程序的顶岗实习管理系统是一种创新的实习管理方式,它将SpringBoot框架的快速开发与微信小程序的便捷使用性相结合,为顶岗实习管理带来了极大的便利。一、系统背景与目的随着高校教育的深入发展,顶岗实习已成为培养学生实践能力的重要环节。然而,传统的......
  • 【含文档+PPT+源码】基于大数据的交通流量预测系统
    项目介绍本课程演示的是一款基于Python的图书管理系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。包含:项目源码、项目文档、数据库脚本、软件工具等所有资料带你从零开始部署运行本套系统该项目附带的源码资料可作为毕设使用......
  • 【含文档+PPT+源码】基于Python的图书推荐系统的设计与实现
    课程简介:本课程演示的是一款基于python的图书推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为......
  • python毕设基于javaweb的汽车商城管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于汽车商城管理系统的研究,现有研究主要以传统的管理模式或单一功能模块为主,专门针对基于JavaWeb的Python毕设汽车商城管理系统的研......
  • 基于YOLOv5的手语识别系统:深度学习应用与实现
    手语是聋人和听力障碍者与他人交流的主要方式之一。随着社会的进步,手语的识别技术逐渐成为研究的热点,尤其在智能助残设备和多模态人机交互中,手语识别的应用越来越广泛。尽管手语是一种自然语言,但其表达方式非常丰富,包括了不同的手势、姿势、动作轨迹和面部表情等。为了能够......
  • 基于YOLOv5的医学影像病变区域识别:深度学习在医学诊断中的应用
    随着医疗技术的进步,医学影像成为了辅助医生进行疾病诊断的重要工具。医学影像不仅能帮助医生观察到患者体内的病变区域,还能为疾病的早期发现和精准治疗提供关键线索。传统的医学影像分析方法依赖于医生的经验和人工判断,效率低且容易受到人为因素的影响。而随着深度学习技术,......
  • springboot基于vue的音乐播放系统(论文+PPT)
    一、概述        音乐网站与分享平台的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、音乐资讯管理、音乐翻唱管理、在线听歌管理、留言板管理、系统管理,用户:首页、个人中心、音乐翻唱管理、我的收藏管理,前台首页;首页、音乐资讯、音乐翻唱......