| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> javascript 线程机制与事件机制 -> 正文阅读 |
|
[JavaScript知识库]javascript 线程机制与事件机制 |
1.浏览器内核1.?什么是浏览器内核? ??*?支持浏览器运行的最核心的程序 2.?不同的浏览器可能不太一样 ??*?Chrome,?Safari:?webkit ??*?firefox:?Gecko ??*?IE:?Trident ??*?360,搜狗等国内浏览器:?Trident?+?webkit 3.?内核由很多模块组成 ??*?html,css文档解析模块?:?负责页面文本的解析 ??*?dom/css模块?:?负责dom/css在内存中的相关处理 ??*?布局和渲染模块?:?负责页面的布局和效果的绘制 ??*?布局和渲染模块?:?负责页面的布局和效果的绘制 ------------- ??*?定时器模块?:?负责定时器的管理 ??*?网络请求模块?:?负责服务器请求(常规/Ajax) ??*?事件响应模块?:?负责事件的管理 ? 2.定时器引发的思考1.?定时器真是定时执行的吗? ??*?定时器并不能保证真正定时执行 ??*?一般会延迟一丁点(可以接受),?也有可能延迟很长时间(不能接受) 2.?定时器回调函数是在分线程执行的吗? ??*?在主线程执行的,?js是单线程的 3.?定时器是如何实现的? ??*?事件循环模型
3.js是单线程的????1.?如何证明js执行是单线程的? ????*?setTimeout()的回调函数是在主线程执行的 ????*?定时器回调函数只有在运行栈中的代码全部执行完后才有可能执行 ????2.?为什么js要用单线程模式,?而不用多线程模式? ????*?JavaScript的单线程,与它的用途有关。 ????*?作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。?这决定了它只能是单线程,否则会带来很复杂的同步问题 ????3.?代码的分类: ????*?初始化代码 ????*?回调代码 ????4.?js引擎执行代码的基本流程:先初始化代码===>后回调代码 ????*?先执行初始化代码:?包含一些特别的代码(同步代码):?包含绑定dom事件监听,?设置定时器,?发送ajax请求的代码, 后执行?回调执行代码{异步代码, 处理回调逻辑(异步执行,异步执行模式,是指语句在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同)} ????*?设置定时器 ????*?绑定事件监听 ????*?发送ajax请求 ????*?后面在某个时刻才会执行回调代码 ??5.回调函数的理解 ????*?什么函数才是回调函数? ????*?你定义的 ????*?你没有调用 ????*?但它最终执行了(在一定条件下或某个时刻) ? ?常用的回调函数: ????*?dom事件回调函数 ????*?定时器回调函数 ????*?ajax请求回调函数 ????*?生命周期回调函数 6.模型的2个重要组成部分: ??*?事件(定时器/DOM事件/Ajax)管理模块 ??*?回调队列 7.?模型的运转流程 ??*?执行初始化代码,?将事件回调函数交给对应模块管理 ??*?当事件发生时,?管理模块会将回调函数及其数据添加到回调列队中 ??*?只有当初始化代码执行完后(可能要一定时间),?才会遍历读取回调队列中的回调函数执行 ? ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:01:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |