首页 数据库 正文

jssetinterval js中setTimeOut()和setInterval()的使用——程序执行时间控制

js中setTimeOut()和setInterval()的使用——程序执行时间控制

问题出现环境:

Extjs中使用ajax请求时,并不阻止其后程序继续执行,在业务流程中,我们需要在请求结束后执行操作,我们可以使用常规方法,将后续程序写在回调函数callback:或是success中,实现异步控制,当我们的执行函数和ajax请求函数不在同一js中,接下来的处理,就用到了setTimeOut(),setTimeOut()使用过程中需要注意的是,第一个参数传入的是方法,而第二个参数传递的是等待的时间毫秒数,

[javascript] view plain copy

function sayHello(){ alert("Hello"); } //通过方法名调用,添加双引号。 setTimeOut("sayHello()",1000); setTimeOut(function (){sayHello()},1000);

上述两种调用方法效果是一样的,至今不明白,为什么不可以写成setTimeOut(sayHello(),1000)

setTimeOut()设定该方法在1000ms后只执行一次,如果需要间隔指定时间重复执行方法 时,那就要使用

setInterval()。最好定义变量,

var timeUpdate = setInterval("yourfunction()",yourtime);

停止该方法时调用clearInterval(timeUpdate)

js中的两种定时器setTimeout()和setInterval()怎么用

setTimeout()和setInterval()

JS有两种定时器分别是setTimeout()和setInterval(),这两个区别就是setTimeout()是一次性的定时器,而setInterval()是循环的定时器。

定时器的精度

js中的定时器精度并不准确,这是因为JS中的定时器仅仅是将执行的语句加入队列,这样在定时器之前的语句若是在循环或者有延迟的情况下,定时器也会相应的延后。

对于性能的消耗

上面提到了js中的定时器精度不准确的原因,同样的这也会导致使用setTimeInterVal语句会卡顿,其不管语句是否执行完成,都会在时间点执行语句。

实际上大多数的场景中,只是想要定时之后执行完语句再等待定时的触发,完全可以使用setTimeOut搭配clearTimeout这样在使用定时器之后进行消除再加一个循环,总和性能比单纯的setTimeInterVal要好上不少。

可执行字符串形式语句

由于历史原因,两种定时器都支持eval的效果,可以执行字符串形式的语句。

若定时时间为0则放在队列最后执行

如果将定时为0秒后执行,语句并不会立刻执行,而是将其放在队列最后,等待所有语句执行完成之后,再立刻执行。

相关问答

js 中定时器setTimeout函数的問題?-ZOL问答

setInterval(function(){alert('每次同时只会出现一个');},3000);setTimeout这个函数是在延时后执行1次。而setInte...

timer在 js 中需要定义吗?

timer在js中不需要定义,直接通过setIntervaltimer在js中不需要定义,直接通过setInterval

js 定时器设置时间le3是多久?

对于JavaScript定时器,setTimeOut()和setInterval()函数的时间参数表示延迟的毫秒数。因此,le3表示延迟3毫秒。请注意,由于浏览器的工作原理和性能限制,实际...

js 在网页上显示当前日期和时间,并显示是星期几-ZOL问答

varx=setInterval(function(){vard=newDate();document.getElementBy...网上去搜一个日历控件的js就ok了这是很正常...

新年倒计时计时器怎么弄?

制作一个新年倒计时计时器可以通过以下步骤实现:确定计时器的外观和尺寸,可以选择一个适合的容器,如一个漂亮的玻璃罐或一个创意的倒计时钟表。准备所需的材料...

js 环形图原理?

JS环形图利用Canvas绘制一个圆形,并根据数据计算每个扇形的角度,然后利用路径和填充颜色绘制每个扇形,最后在中心绘制文本或图标。通过JS计算和操作Canvas,...

js 延时10秒后再显示某个层中的内容的代码?

window.onload=function(){window.setInterval(function(){document.getElementById('abc').st...

vue如何写全局 setinterval 方法?

vue.写全局setinterval方法是使用代码mounted()this.getElevatorList();setInterval(this.getElevatorList,15000);随...

一共三个DIV。想让它像幻灯片一样。轮换显示隐藏。。就怎么弄...

用JS或是jquerysetIntervalclearIntervalsetTimeout.........怎么写呢。。基本功好差啊。。。求教下写个最简单的例子!!收藏(0)...

自己做的页面怎么让页面上的字动起来?

vaScript:-使用JavaScript选择你想要....animated-text{animation:slide-in2sease-in-outinfini...