首页 > 其他分享 >阐述⼀下 JS 的事件循环

阐述⼀下 JS 的事件循环

时间:2023-03-08 13:46:10浏览次数:48  
标签:阐述 浏览器 队列 JS 任务 循环 事件

  1. 事件循环⼜叫做消息循环,是浏览器渲染主线程的⼯作⽅式。
  2. 在 Chrome 的源码中,它开启⼀个不会结束的 for 循环,每次循环从消息队列中取出第⼀个任务执⾏,⽽其他线程只需要在合适的时候将任务加⼊到队列末尾即可。
  3. 过去把消息队列简单分为宏队列微队列,这种说法⽬前已⽆法满⾜复杂的浏览器环境,取⽽代之的是⼀种更加灵活多变的处理⽅式。
  4. 根据 W3C官⽅的解释,每个任务有不同的类型,同类型的任务必须在同⼀个队列,不同的任务可以属于不同的队列。不同任务队列有不同的优先级,在⼀次事件循环中,由浏览器⾃⾏决定取哪⼀个队列的任务。但浏览器必须有⼀个微队列,微队列的任务⼀定具有最⾼的优先级,必须优先调度执⾏。

标签:阐述,浏览器,队列,JS,任务,循环,事件
From: https://www.cnblogs.com/crispyChicken/p/17191738.html

相关文章

  • python中的循环语句
    循环语句while循环​ 用于不固定次数的循环......
  • js 简单的深拷贝
    本题是通过@郝晨光 的文章受到的启发,学习来的,大家有兴趣可以看一下,而且我觉得这种写法非常通俗易懂,工作中也足够去使用了。functionDeepClone(target){letresult......
  • JS上传文件夹的三种解决方案
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{......
  • 4_JSON格式
    ​ AJAX数据格式处理响应普通文本数据如果服务器给我们响应的数据非常简答,那么使用字符串就好了,不需要我们做复杂的处理,后台编码也简单.页面代码<%@pageconten......
  • js中 getTime 注意的点
     坐标:北京 问题:一直以为newDate(1970,0,1,0,0,0).getTime()===0实际newDate(1970,0,1,8,0,0).getTime()===0 详细: 摘自菜鸟  ......
  • 4_JSON格式
    ​ AJAX数据格式处理响应普通文本数据如果服务器给我们响应的数据非常简答,那么使用字符串就好了,不需要我们做复杂的处理,后台编码也简单.页面代码<%@pageconten......
  • js读取href中的参数函数
    functionGetQueryValue(queryName){ varquery=decodeURI(window.location.search.substring(1)); varvars=query.split("&"); for(vari=0;i<vars.lengt......
  • VSCode调试js代码的几种方式
    背景  在leetcode刷题时需要调试js代码  代码写在.js文件中 方式一node.js  安装node.js  配置launch.json      左侧【运行和调试】,【F5】启动调......
  • js 判断字节流是否可以按照utf8编码转成字符串
    下面的代码是我网上找的其他语言的实现方式改的js版本的,原版本的地址找不见了,但是我们还是要先感谢下原版本的作者不同于原版本,因为UTF8兼容ASCII,纯ASCII字节流也能用utf8......
  • js变量类型判断
    js变量类型判断方式首先我们知道js中若想验证某个值是否为null,应该使用操作符===,==无法区分null和undefined;定义一组变量,适用于全文;letnum =123;letnum1=1/......