- 时间:2022-02-21 23:30 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:javascript里模拟sleep(两种实现方式)
有几种方式,但都不完美
[b]其一,不断循环,直到达到指定时间[/b]
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
其实代码并没有让脚本sleep下来, 相反让CPU迅速上到高负荷的附作用。多数现代浏览器会在该段时间内处于假死状态
[img]http://files.jb51.net/file_images/article/201301/2013125162433931.png?2013025162515[/img]
[b]其二[/b],用xhr同步请求后台程序,比如传2000过去,后台就sleep 2秒后再返回,这种方式也有缺点,当N多客户端都请求后台时,一直保持连接http开销很大。
此外,window对象的alert,confirm也可以中断后续代码的执行。