关于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。

时间: 2024-10-20 00:00:16

关于setTimeout()的相关文章

setTimeout的异步传输机制

setTimeout是异步的,在设置完setTimeout后,指定代码会在设定的时间后加入到任务队列,但并不是立即执行,js是单线程语言,所有的代码按顺序执行,即同步执行,同步执行的代码放在执行队列中,而异步执行的setTimeout放在任务队列中,执行顺序是先执行完执行队列中的代码再去查看任务队列中是否有要执行的代码: 这段代码看上去好像4应该比5先打印出来,但实际上是先打印出5再打印出4: 就如上面所说的,1,3,5都放在执行队列中,而4,2放在任务队列中,所以4,2要等执行队列中的1,3,

setTimeout ,setInterval

1.setInterval是间隔执行,间隔多久执行一次,执行多次 setInvertal(function(){},500) 2.setTimeout是延迟执行,执行一次 setTimeout(function(){},500) 清除定时器 param=setInterval(function(){},300) clearInterval(param)关闭定时器

JS setTimeout clearTimeout

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>计时器</title> </head> <script type="text/javascript"> var num=0; var i; fu

Javascript引擎单线程机制及setTimeout执行原理说明

setTimeout用法在实际项目中还是会时常遇到.比如浏览器会聪明的等到一个函数堆栈结束后才改变DOM,如果再这个函数堆栈中把页面背景先从白色设为红色,再设回白色,那么浏览器会认为DOM没有发生任何改变而忽略这两句话,因此我们可以通过setTimeout把“设回白色”函数加入下一个堆栈,那么就可以确保背景颜色发生过改变了(虽然速度很快可能无法被察觉). 总之,setTimeout增加了Javascript函数调用的灵活性,为函数执行顺序的调度提供极大便利. 然后,我们从基础的层面来看看:理解J

setTimeout与setInterval

setTimeout(表达式,时间)在执行时,是在载入后的延迟指定时间去执行一次表达式,计数一次. setInterval(表达式,时间)在载入后,每隔指定的时间就执行一次表达式. 总的来说,setTimeout单次调用,setInterval多次调用. 嵌套setTimeout方法:将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的,这样就能形成反复定时的效果. 使用setInterval需要手动停止触发,而使用嵌套setTimeout方法不

setTimeout可以传第三个甚至更多个参数

以前在使用setTimeout()方法的时候,都是传两个参数第一个参数是一个函数,第二个参数是毫秒数,表示异步处理过多少毫秒执行第一个函数参数.后来有看到有人给setTimeout()传第三个参数,不清楚传第三个参数是干嘛的,于是就学习了一下.第三个或者更多参数都是第一个函数的参数,详情请看https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout. 一个简单的例子如下: functi

js延时函数setTimeout

实现一个延时执行的效果,现记录如下: <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> function alertV(){ alert("000"); } setTimeout(alertV,10

循环/闭包/setTimeout/Promise 综合

控制台显示内容为? for (var i = 0; i < 5; i++) { console.log(i); } 控制台显示内容为? for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); } 控制台显示内容为? for (var i = 0; i < 5; i++) { (function(i) { setTimeout(function() { console.log(i

setTimeout()和setInterval()的用法

JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function",time) 设置一个超时对象 setInterval("function",time) 设置一个超时对象 SetInterval为自动重复,setTimeout不会重复. clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象)

setTimeout

setTimeout 只能保证在指定的时间后将任务(需要执行的函数)插入任务队列中等候,但是不保证这个任务在什么时候执行.一旦执行javascript的线程空闲出来,自行从队列中取出任务然后执行它. 1,setTimeout的好搭档"0": var start = new Date(); var end = 0; setTimeout(function() { console.log(new Date() - start); }, 0);//2,或3或4