您的位置:首页 > Web前端 > JavaScript

js 多线程 setTimeout setInterval

2016-09-07 17:18 423 查看
javascript无法实现线程阻塞(sleep),原因是因为sleep涉及系统调用。js出于安全考虑是不允许系统调用的。

 

如果一定要实现语句继续执行就只能用while(1)空转的方法消耗CPU,判断到了时间就break。不过这个方法也不是真正sleep。

 
 
只执行一次的定时器
<script>
//定时器使用的是异步的方式运行的
function hello(){
alert("hello");
}
//使用方法名字执行方法
var t1 = window.setTimeout(hello,1000);
var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法

window.clearTimeout(t1);//去掉定时器

</script>

 
重复执行的定时器
<script>

function hello(){
alert("hello");
}
//重复执行某个方法
var t1 = window.setInterval(hello,1000);
var t2 = window.setInterval("hello()",3000);
//去掉定时器的方法
window.clearInterval(t1);

</script>

 
问题:如果在一个页面中有两个方法都是在页面加载完成之后执行的,但是实际运行的结果不能按照自己想象的先后顺序执行,该如何解决呢?
可以在onload方法中添加一个定时器,设置一个定时器,“延迟”一段时间之后再运行,这样就可以认为区分页面加载运行方法的先后顺序了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: