这篇文章主要介绍了关于js定时器和单线程异步特性,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
首先要说的是,定时器相关的方法都是属于BOM方法,而定时器呢,它是用于在设定的时
间执行一段代码,或者在给定的时间间隔内重复该代码。具体函数:
setTimeout(callback, delay);//delay一定的时间后,执行回调函数只执行一次 setInterval(callback, delay);//每隔一段时间执行一次callback,反复执行 clearInterval(timer);//清除定时
定时器确实很好用,但是却又不好用,为什么这么说呢?
我们知道JS是单线程的,既然是单线程那么就很容易出现线程被堵塞的情况,怎么解决
呢?——异步!
当然JS是单线程的它本身是不能异步的,但JS的宿主环境(比如浏览器,node)是多线程
的,宿主环境通过某种方式(比如:node的事件驱动)使得JS具备了异步的特性。
为什么突然谈起JS的单线程异步呢?因为定时器事件会被JS异步处理,什么意思?
用代码来说:
var num = 1;
setTimeout(function() {
num++;
console.log(num);
}, 1000);
console.log(num); //结果并是不(2,1)而是(1,2)为什么会这样?前面说过了,JS会把定时器事件异步处理,也就是说它并不会等待定时器事件
处理完成后再执行下面的代码,而是直接将定时器事件插入到事件队列当中后,直接执行下面
的代码,当定时器事件执行完成后JS再反过头来执行定时器事件的回调部分代码,这就是异步!
异步可以有效的防止JS线程被堵塞,且会有很高的效率,能够使JS在有限的资源下做更多的事
情,这一点是很了不起的。(node中我们会大量接触关于异步的问题)
1、对ASP内核代码进行DLL封装,从而大大提高了用户的访问速度和安全性;2、采用后台生成HTML网页的格式,使程序访问速度得到进一步的提升;3、用户可发展下级会员并在下级购买商品时获得差额利润;4、全新模板选择功能;5、后台增加磁盘绑定功能;6、后台增加库存查询功能;7、后台增加财务统计功能;8、后台面值类型批量设定;9、后台财务曲线报表显示;10、完善订单功能;11、对所有传输的字符串进行安全
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:









