首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎么控制多函数调用递归函数时不抢进程

2012-02-28 
如何控制多函数调用递归函数时不抢进程?JScript codefunction aaa() {document.getElementById(div1).st

如何控制多函数调用递归函数时不抢进程?

JScript code
function aaa() {  document.getElementById("div1").style.left = document.getElementById("div1").style.left - 1  if(document.getElementById("div1").style.left  >= 0){    setTimeout("aaa()", 20);  }



显然aaa()函数是用来移动一个div的

函数bbb()有权调用aaa()
函数ccc()有权调用aaa()
函数ddd()有权调用aaa()


如何做到让bbb()调用aaa()的时候 ccc()和ddd()无权调用? 等aaa()递归达到目的后 再放开权限?




因为现在3个按钮分别控制bbb()ccc()ddd()


所以 3个按钮同时按下的时候 aaa()函数就会以原来3倍的速度调用...影响了原来的div的缓慢移动效果


[解决办法]
因为你本身有20ms的等待时间
现假设有A B C 三个方法在调用aaa()
那么A调用了aaa()
aaa()运行了之后休息20ms
B调用aaa()
在A的20ms里B是可以运行的
同理C也是
所以原本20ms内只运行一次的现在可以变为3次

至于说setTimeout其实是模拟多线程的,但是不影响这个结果的诞生。

热点排行