和我一起学习Javascript定时器

和我一起学习Javascript定时器
计时器概述

窗口对象提供了两种方式实现定时器的作用,这是window.settimeout()和window.setinterval.the前允许代码运行指定的时间后;后者可以一段代码在指定的时间运行一次。他们的原型如下:
Window.setTimeout(表达毫秒);
Window.setInterval(表达毫秒);
其中,表达可用于引用的一段代码,也可以是一个函数名字,在指定的时间,系统会自动调用该函数,当使用函数名作为呼叫处理,不与任何参数;和一个字符串的使用,你可以写参数传递的。这两种方法的第二个参数是毫秒,它代表毫秒延迟或重复数。以下两种方法分别进行了介绍

它是使用setInterval和设置延时功能settimeout.settimeout非常相似,用于延迟一段时间,然后某个操作

setTimeout(功能
setInterval(功能
setInterval和setTimeout自动重复,不重复。

ClearTimeout(对象)清除setTimeout对象集
ClearInterval(对象)清除setInterval对象集
使用计时器实现或重复Javascript的执行

两。具体使用

1.window.settimeout方法

此方法可以延迟函数的执行,例如:
函数hello(){
警报(hello);
}
Window.setTimeout(你好,5000);
此代码将打开页面5秒显示对话框hello。最后一句也可以写成:
window.settimeout(你好()
读者可以了解他们之间的分歧,在window.setinterval方法具有相同的性质。

如果我们取消执行的最后期限前达成,我们可以用window.cleartimeout(timeoutid)方法接收一个ID代表一个定时器。这个ID是由setTimeout方法返回,例如:
函数hello(){
警报(hello);
}
var id = window.settimeout(你好,5000);
文件。onclick =函数(){
window.cleartimeout(ID);
}

这样,如果你想取消显示,你只需要点击页面的任何部分执行window.cleartimeout方法使超时操作被取消。

2.window.setinterval方法

这种方法使得一个函数调用每隔固定的时间,这是一种很常见的方法。如果你想取消定时执行,类似于清除定时器的方法,window.clearinterval方法可以调用。clearInterval方法也接收返回值通过setInterval方法作为一个参数。例如:
定义重复调用
var id = window.setinterval(功能
取消执行时间
window.clearinterval(ID);

三.挑战

上面的代码是用来显示如何取消定时执行。在许多场合使用setInterval方法,下面一个问题:设计一个秒表,介绍setInterval函数的使用:秒表将包括两个按钮和一个显示时间的文本框,当点击开始按钮时的最小单位0.01秒,然后再次单击按钮停止计时,文本框显示所用的时间,另一个按钮是用来设置当前时间。让我们先做,和下一篇文章将告诉你答案,点击回答:Javascript的简易秒表计时器。

三。将参数传递给计时器调用

无论window.settimeout或window.setinterval,你不能使用函数名作为参数调用处理。在许多情况下,你需要带参数,这就需要解决方案。例如,对于功能你好(_name),它是用来为用户名称显示欢迎信息:
var;
根据用户名显示欢迎消息
功能你好(_name){
警报(你好,+ _name);
}

此时,如果尝试以下语句,将延迟执行hello函数3秒是不可行的:
Window.setTimeout(你好(用户名),3000);

这会使你好功能立即执行并通过返回值为呼叫处理的setTimeout函数,这不是计划的结果。在一个字符串的形式,可以达到预期的结果:
window.settimeout(你好(用户名)

这里的字符串是一段Javascript代码,其中用户名是一个变量,但是这个方法不直观,有些场合必须使用函数名,下面是一个实现参数函数调用的小技术。
var;
根据用户名显示欢迎消息
功能你好(_name){
警报(你好,+ _name);
}
创建一个返回非参数函数的函数
功能_hello(_name){
返回函数(){
你好(_name);
}
}
window.settimeout(_hello(用户名),3000);

一个功能_hello定义在这里,它是用来接收参数和函数没有参数返回。在这个函数中,外部函数的参数用于内部,这样叫是不需要的。在window.settimeout功能,_hello(用户名)是用来处理函数没有参数的回归,从而实现参数的传递函数。

四。正确理解定时器的定时功能

首先看一段代码
函数显示(){
警报(你好);
}
setTimeout(显示()
警惕(你第一次看到我)!)
代码首先输出什么答案很明显,为什么

初学者可能Javascript定时器有误解,其实它们都是线程,Javascript是单线程运行,当定时器是一个执行计划,在未来的某个时间,和执行时间是没有保证的,因为在不同的时间页面的生命周期,有可能是在控制其他Javascript代码的过程。浏览器只负责整理,运行在一个时间点分配一个代码。

下一个Javascript线程旁边,下面的图显示了Javascript进程时间轴。
除了Javascript实现过程之外,还需要在空闲时间执行队列过程中执行代码,随着生命周期中的页面继续进行,代码将按照执行顺序添加到列表中,例如:当按下一个按钮时,事件处理将被添加到队列中。在接下来的一段时间里表演和表演。

定时器队列的方式是,当一个特定的时间在过去,插入代码,注释添加到队列中并不意味着它会立即,但只能说它将尽快执行,250毫秒后设置一个定时器,250ms并不意味着它会立即,它只会表示在250ms的添加到队列,如果队列的时间是免费的,所以这个代码会被执行。

请看下面的代码:
VaR建立document.getelementbyid(mybtn );
btn.onclick =函数(){
setTimeout(){()函数(
document.getelementbyid(消息)。节点名=我;
其他代码
},250);
}
请注意关于定时器的最重要的事情是,指定时间间隔表明当计时器的代码添加到队列中,而不是在执行代码,这个事件上处理的过程时间,见下图:
以上是本文的全部内容,我希望通过本文,您将对Javascript定时器有更多的了解,我们将共同进步。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部