JS的同步与异步
来源:互联网 发布:剑灵辅助软件 编辑:程序博客网 时间:2024/06/16 00:16
JS是单线程的->做着当前的这件事情,没有完成之前,绝对不会做下一件事情
JS中的两种编程思想:同步、异步
同步指下一个程序的执行需要等到上一个程序执行完毕,也就是得出结果后下一个才能执行(JS中大部分都是同步编程的)
for (var i = 0; i < 100000; i++) { if (i == 99999) { console.log("循环结束了~~"); //->(1) } } console.log("ok"); //->(2) //for循环就是同步编程的,只有循环结束后,才会继续执行下面的代码 while (1) { } console.log("ok"); //->永远都不会执行的,因为上面的循环是死循环,循环永远都不会结束
异步指的是上一个程序指向后,下一个程序不用等到上一个程序出结果就能执行,等上一个出结果了调用回调函数处理结果就好。
-> JS是属于单线程,我们最好使用异步编程
-> 定时器都是异步编程
-> 事件绑定 异步
-> 回调函数 异步
-> 在AJAX中可以使用异步编程
异步 -> 规划要做一件事情,但是不是当前立马去执行这件事情,需要等一定的时间,这样的话,我们不会等着它执行,而是继续执行下面的操作,"只有当下面的事情都处理完成了,才会返回头处理之前的事情;如果下面的事情并没有处理完成,不管之前的事情有没有到时间,都踏踏实实的给我等着"
var n = 0; window.setTimeout(function () { n++; console.log(n);//->1 (2) }, 1000); console.log(n);//->0 (1) //->每一个浏览器对于定时器的等待时间都有一个最小的值,谷歌:5~6ms IE:10~13ms, //如果设置的等待时间小于这个值,不起作用,还是需要等到最小时间才执行的;尤其是写0也不是立即执行; var n = 0; window.setTimeout(function () { n++; console.log(n);//->1 (2) }, 0); console.log(n);//->0 (1) //->我们定时器设置的等待时间不一定就是最后执行的时间,如果定时器之后还有其他的事情正在处理中,不管定时器的时间有没有到,都是不会执行定时器的 var n = 0; window.setTimeout(function () { n++; console.log(n);//->不执行的 }, 0); console.log(n);//->0 (1) while (1) {//->死循环 n++; } console.log(n);//->不执行的 // 例子 var n = 0; window.setTimeout(function () { n += 2; console.log(n); //->7 (4) }, 20); window.setTimeout(function () { n += 5; console.log(n); //->5 (3) }, 5); console.log(n);//->0 (1) for (var i = 0; i < 10000000; i++) {} console.log(n);//->0 (2)
阅读全文
0 0
- JS的同步与异步
- DWR与js的同步异步问题
- JS的同步与异步编程
- js中同步与异步
- js中同步与异步处理的方法和区别
- js的同步和异步
- js同步io与异步io
- 同步与异步的概念
- DWR的同步与异步
- 同步与异步的理解
- 同步与异步的区别
- 线程的同步与异步
- 同步与异步的区别
- 同步与异步的区别
- 同步与异步的区别
- 异步与同步的理解
- 同步与异步的区别
- 异步与同步的区别
- quartz数据库说明
- Android第三方推送到达率调研
- Unity IniFile 保存游戏数据到本地文件
- 【转】Web网站测试流程和方法
- 1111
- JS的同步与异步
- 日期类函数(计算日期)
- easyui-datagrid 合并单元格
- 【专题】最长不下降子序列
- python3-FileIO和异常
- mysql修改用户名密码
- mybatis中#和$的区别
- LLVM源码--PointerIntPairInfo类
- 技术网址分类记录