关于setTimeout()

碰到个更新权限的问题,后台要求更新权限后,加个1.5s的时间差,再执行下一个函数。

带参数的方法:

function A(x,y)

1、setTimeout("A('"+arg1+"',"+"'"+arg2+"',"+....+"')",3000);           //不推荐这种方法,麻烦,还容易弄错

2、setTimeout(A,3000,arg1,arg2....);                                             //第一个参数是指针,第二个是延迟执行的时间,后面紧跟着的是调用函数所执行的参数

3、setTimeout(function(){A(arg1,arg2...);},3000);                          //直接把要执行的函数已经参数放在匿名函数里当setTimeout的第一个参数

4、setTimeout(arguments.callee,3000,arg1,arg2....);                              //如果是调用自身的话可以用arguments.callee当自身指针

 

不带参数的方法:

 a,setTimeout("alert('3秒后执行我')",3000);                      //直接把执行语句放在双引号里当参数

  b,setTimeout(function(){alert("3秒后执行我");},3000);     //直接把一个包含执行语句的匿名函数当参数

  c,setTimeout(count,3000);                                           //把指针当参数

  d,setTimeout("count()",3000);                                      //把count()函数放在双引号里当参数,相当于用eval()函数来解析他

  e,setTimeout(function(){count();},3000);                      //把要执行的函数放在一个匿名函数里当参数

  f,setTimeout(arguments.callee,3000);                            //如果是调用自身的话可以直接用arguments.callee方法,优于把自身函数的指针,因为arguments.callee始终指向自身,不用管函数名变动的问题。

 

setTimeout()只执行一次,而setInterval会一直循环,直到clearInterval()。

所以setTimeout可以做页面计时器。

function countMin()
{ y=y+1
  document.displayMin.displayBox.value=y
  setTimeout("countMin()",60000)
}
function countSec()
{ x = x + 1
  z =x % 60
  document.displaySec.displayBox.value=z
  setTimeout("countSec()", 1000)
}

  给setTimeout命名,就可以用clearTimeout清除指定的setTimeout。

posted @ 2016-08-17 18:08  大方  阅读(759)  评论(0编辑  收藏  举报