JS中的同步异步问题

<script>
/*
* JS 是单线程
* 同步 异步
* 常见的异步
* 1、定时器
* 2、事件绑定
* 3、ajax请求(一般的都是异步)
* 4、回调函数也可以理解成 异步
* */
var oDiv = document.getElementById('div1');
console.log(1);
var timer = setTimeout(function () {
console.log(2)
},3000);
console.log(3);

oDiv.onclick = function () {
console.log(4);
};
/*
*
* 浏览器怎么规划 JS的异步? 一个是主任务队列 另一个是等待任务队列
*
* 主任务队列指的是代码从上到下一次执行
* 等待任务队列 存放的是咱们的异步代码
* 等待任务队列中的代码执行的前提 是 主任务队列中的代码执行完毕
* */
// 版本1
console.log(1);
var timer1 = window.setTimeout(function () {
console.log(2)
},500);
console.log(3);
var tiemr2 = window.setTimeout(function () {
console.log(4);
var timer3 = setTimeout(function () {
console.log(6)
},200)
},200);
for(var i = 0; i < 900000000; i++){
//时间大概是 1500毫秒
};
console.log(5);

//----------------------------------------
//版本2-----
console.log(1);
var timer1 = window.setTimeout(function () {
console.log(2)
},500);
console.log(3);
for(var i = 0; i < 900000000; i++){
//时间大概是 1500毫秒
};
var tiemr2 = window.setTimeout(function () {
console.log(4);
},200);
console.log(5);
//----------------------------------------
//版本3-----
console.log(1);
var timer1 = window.setTimeout(function () {
console.log(2)
},500);
console.log(3);
for(var i = 0; i < 900000000; i++){
//时间大概是 1500毫秒
}
var tiemr2 = window.setTimeout(function () {
console.log(4);
},200);
for(var i = 0; i < 900000000; i++){
//时间大概是 1500毫秒
}
console.log(5);

/*
* 主任务队列先执行 依次输出 1 3 执行for for循环完毕后 再输出 5;这时主任务队列执行完毕,等待任务队列中的代码开始执行,
*
* */

console.log(1);
setTimeout(function () {
console.log(2)
},200);
while (true){

}

console.log(1);
setTimeout(function () {
console.log(2)
},0);
console.log(3)
/*
* 定时器 有自己的默认最小时间,即使手写成0,也不是同步执行;也是个异步执行;
* 清除定时器,我们可以混着用;clearInterval 也能清除 timeout
* */
var timer1 = window.setTimeout(function () {
console.log(12)
},4000);
clearInterval(timer1)

</script>

转载于:https://www.cnblogs.com/zhangyongxi/p/9613802.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win8.1 计算机 桌面快捷方式,win8.1操作系统中我的电脑在哪里?win8.1我的电脑快捷键添加方法介绍...

很多刚刚接触win8的用户会发现&#xff0c;xp中的“我的电脑”&#xff0c;win7中的“计算机”&#xff0c;到了win8难道只有“资源管理器”了吗&#xff1f;开始菜单里边倒是有“计算机”&#xff0c;但是无法放到桌面。在最新版的win8.1中也是如此&#xff0c;大家会发现熟悉…

小程序修改数组中对象的某个值或者修改对象值

小程序中获取当前data定义的值&#xff0c;用this.data.xxx setData的时候要修改的值是不需要加this.data.xxx的&#xff0c;直接xxx, 一般直接修改data的值直接修改&#xff0c;修改数组中对象的值或者对象的属性值都要先转为字符串再加中括号&#xff0c;如果有变量可以用E…

mac你没有权限打开应用程序_如何管理Mac的隐私权限控制

在使用MAC电脑清理软件的时候&#xff0c;经常会出现需要权限问题&#xff0c;在没有权限的情况下&#xff0c;我们不能对一些文件进行更改和删除&#xff0c;那么该如何管理Mac的隐私权限控制呢&#xff1f;下面的文章就来告诉大家该如何设置隐身权限问题。第一步&#xff1a;…

Linux网卡绑定

很多情况下我们都需要用到网卡绑定这中情况&#xff0c;例如&#xff1a;大数据传输备份、网卡冗余。使用网卡绑定可以提高网络的传输速度&#xff0c;并且还能保证网络安全性&#xff0c;做到网卡的高可用&#xff0c;甚至可以节省IP地址。 网卡绑定模式 mode0&#xff1a;轮询…

c# 中通快递对接_快递共配是什么?行业前景怎么样?

首先了解快递共配是什么&#xff0c;随着快递市场竞争的加剧&#xff0c;降本增效成为快递网点越来越重视的方面&#xff0c;末端整合就成为快递网点普遍关注的一个焦点&#xff0c;即大家通常所说的共配。如何提升快递末端效率&#xff0c;一直都是快递企业比较关心的话题。不…

html中input字体加粗,更改checkboxGroupInput标签的字体标记(即粗体,斜体)

我正在用R中的Shiny创建一个Web应用程序。我有一个我在地图上绘制的数据集。使用checkboxGroupInput小部件&#xff0c;用户可以选择他们想要在地图上看到的类别(或不)。但是&#xff0c;数据集会随着时间而改变&#xff0c;并非所有类别都可用。为了清楚哪些在当前集合中可用&…

cglib:缺少的手册

字节码检测库cglib是许多众所周知的Java框架&#xff08;例如Hibernate &#xff08;现在不再 &#xff09;&#xff09;或Spring最受欢迎的选择&#xff0c;它们可以完成肮脏的工作。 字节码检测允许在Java应用程序的编译阶段之后操作或创建类。 由于Java类在运行时动态链接&a…

(7)MySQL的事务

什么是事物&#xff1a; 作用&#xff1a;一个事务&#xff08;transaction&#xff09;中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会结束在中间某个环节。事务在执行过程中发生错误&#xff0c;会被回滚&#xff08;Rollback&#xff09;…

vue路由跳转报错解决

vue路由跳转&#xff1a; setTimeout(function () { console.log(this); this.$router.push("/login"); },800) 语法没问题但是报错&#xff1a; MyFollow.vue?c93c:119 Uncaught TypeError: Cannot read property push of undefined 这时候说明this指向不一样了&am…

ceph存储原理_热门的分布式存储系统ceph入门介绍

一、什么是cephceph是当前最热门的分布式存储系统之一&#xff0c;是软件定义存储(SDS,SoftwareDefinedStorage)解决方案中的典范。其具备良好的可靠性、可扩展性&#xff0c;应用范围包括块存储(RBD,RadosBlockDevice)、文件存储(CephFS,CephFileSystem)和对象存储(RADOSGW,Re…

2017计算机应用考研大纲,2017考研计算机大纲

出国留学考研网为大家提供2017年考研计算机大纲&#xff1a;数据结构&#xff0c;更多考研资讯请关注我们网站的更新!2017年考研计算机大纲&#xff1a;数据结构一、数据结构考查目标1. 掌握数据结构的基本概念、基本原理和基本方法。2. 掌握数据的逻辑结构、存储结构及其基本操…

[SCOI2009] windy数

[SCOI2009] windy数 题目大意:求\([L,R]\)中相邻每一位之差至少大于\(2\)的数字个数,(只有一位也算) Solution 数位\(dp\)直接搞,对于前导零,其实不用卡下界,只要一个用一个状态来表示就好,还可以取\(0\) Code #include <iostream> #include <cstdio> #include <…

小程序点击调转带参数_带你走遍苏大的每个角落,校园导览小程序上线!

精彩推荐 1. 招新 | 携手趁韶华&#xff0c;约你同做“校媒人”&#xff01;2. 迎新现场 | 今天&#xff0c;“小20”是苏大的主角3. 苏州大学与亨通集团签订战略合作协议钟楼、红楼、精正楼……存菊堂、敬贤堂、子实堂……初至校园的“小20”们是否会有这样的烦恼在这楼宇亭台…

ArrayList与LinkedList

我必须承认这篇文章的标题有点吸引人。 我最近阅读了此博客文章 &#xff0c;这是有关此主题的讨论和辩论的一个很好的摘要。 但是这次&#xff0c;我想尝试一种不同的方法来比较这两个众所周知的数据结构&#xff1a;使用硬件性能计数器 。 我不会进行微基准测试&#xff0c…

koa中上传文件到阿里云oss实现点击在线预览和下载

比较好的在线预览的方法&#xff1a; 跳转一个新的页面&#xff0c;里面放一个iframe标签&#xff0c;或者object标签 <iframe src"xxx"></iframe> <object data"xxx"></object> 但是这两个标签也有限制&#xff0c;有些可以直接…

反序列化 还是记一下吧

JsonConvert.DeserializeObject<dynamic>(result) https://www.cnblogs.com/caofangsheng/p/5687994.html 转载于:https://www.cnblogs.com/sajiao/p/10303072.html

三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点

CODESYS共支持六中不同的编程语言&#xff0c;很多学者在学习的过程中常会问一个问题&#xff0c;哪种编程语言最好&#xff1f;其实本人觉得没有哪种编程语言是绝对的好或不好&#xff0c;不同的工程应用具有不同的最佳编程方式&#xff0c;每种编程语言都具有其不同的特点&am…

假定某一个数据列表是一个班级的计算机课程,若需要利用形参直接访问实参,则应把形参变量说明为()参数。A.指针B.引用C.传值D.常值...

参考答案如下有机化合物系统命名法中&#xff0c;若需根据位次规则给官能团和取代基定位&#xff0c;常用 ( ) 编号要利用形引用RGB是与设备无关的色彩空间。参直参参变参数传值常值病毒灭活是指在理化因素作用下使病毒失去A1在后场向前场传球时&#xff0c;接访球触碰到了双脚…

爬虫

爬虫 1、设计 分布式爬虫系统允许位于多个不同主机上的爬虫程序并行爬取提交的爬虫作业&#xff0c;进而协调他们之间的爬取能力。爬取队列由redis管理&#xff0c;每个spider通过修改的调度程序从queue中拉取job。 页面被spider成功爬取后&#xff0c;就交给管线进行进一步处理…

python下划线怎么输入_python下划线怎么打出来

python中下划线使用键盘上的Shift减号键即可打出&#xff0c;减号键位于0和加号键之间。 在Python中下划线还具有 private 和 protected 类似的访问权限作用&#xff0c;下面我们具体分析。Python主要存在四种命名&#xff1a; &#xff08;1&#xff09;object #公用方法 &…