ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

前端中--js定时器的用法SetTimeout

2021-10-17 09:59:11  阅读:165  来源: 互联网

标签:定时器 word setTimeout -- js setInterval var SetTimeout


我们在创建一个网页的时候我们有时候为了要实现一个动态网页随时间变化网页内容产出变化的效果或者会用到定时器来实现数据实时更新、时间等时就需要在js代码中定义一个定时器来实现该功能.


Javascript中的定时器有两种,setInterval和setTimeout,而定时器的作用就是延迟执行。

两种函数定义的形式:

setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
setTimeout() :在指定的毫秒数后调用函数或计算表达式
在上式中expression既可以是字符串,也可以是匿名函数,或者也可以是一个函数名,第二个参数为延迟执行的时间. 

下面是两个实例:


<html>
<body>
 
<input type="text" id="clock" />
<script type="text/javascript">
var int=self.setInterval("clock()",1000);
function clock()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("clock").value=t;
}
</script>
 
<button onclick="int=window.clearInterval(int)">停止</button>
 
</body>
</html>
 


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
 
<p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
<button onclick="myFunction()">点我</button>
 
<script>
function myFunction()
{
    setTimeout(function(){alert("Hello")},3000);
}
</script>
 
</body>
</html>

以下实例在每 1000 毫秒执行 clock() 函数。实例中也包含了停止执行的按钮:

js常用的定时器方法有四个

  • setTimeout(“js语句”,定时时间)
  • setInterval(“js语句”,定时时间)
  • clearTimeout(需要停止的对象)
  • clearInterval(需要停止的对象)

注意:这里的定时时间单位都为毫秒
下面我们来看一下它们的用法:
setTimeout()
单次定时,即setTimeout的第一个参数的js语句只会定时实现一次。
比如:
 

word = setTimeout("showWord()", 2000)

那么浏览器就会只在你调用setTimeout方法2秒后实现showWord方法,只实现一次不循环。将setTimeout赋值给word是为了方便清除,下面我们会提到。
我们来看一下效果:

 当然你还可以把函数方法写到setTimeout的参数中去。
比如:

var word = setTimeout(function() {
	s.innerHTML = "<p>我喜欢javacript</p>"
}, 3000)

setInterval()
循环定时,即setInterval的第一个参数的js语句只会定时实现无数次。
比如:

word = setInterval("showWord()", 2000)

浏览器会在你调用setInterval后每间隔2秒就会调用一次showWorld方法

同理如果你喜欢的话,也可以将函数写到参数中去

clearTimeout() 与 clearInterval()
两者用法一样,清除定时器对象,不过从名字可以看出,清除的定时器是与上面对应的,但其实是可以互用的,你们可以试试。现在我们来说说它们的用法。
比如前面的word:

clearInterval(word)

clearInterval就只有一个参数,即你要清除的定时器对象,当然clearTimeout的参数也是只有一个
效果在演示setInterval时已显示

补上showWord代码:

var showWord = () => {
		r = Math.random() * 254 + 1
		g = Math.random() * 254 + 1
		b = Math.random() * 254 + 1
		var s = document.getElementById("show")
		s.style.background = "rgb(" + r + "," + g + "," + b + ")"
		s.innerHTML = "<p>我喜欢javacript</p>"
}

标签:定时器,word,setTimeout,--,js,setInterval,var,SetTimeout
来源: https://blog.csdn.net/m0_60237095/article/details/120807552

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有