setTimeout()和setInterval()方法的区别?
学了JavaScript都应该知道setTimeout()是延时器,setInterval()是定时器。setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次,而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式 所以,完全是不一样的。
1.setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数,看例子:
<html>
<body>
<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
{
var t=new Date()
document.getElementById("clock").value=t
}
</script>
</form>
<button onclick="int=window.clearInterval(int)">
Stop interval</button>
</body>
</html>
2.setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,setTimeout() 只执行一次,看例子:
<html>
<head>
<script type="text/javascript">
function timedMsg()
{
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
<p>Click on the button above. An alert box will be displayed after 5 seconds.</p>
</body>
</html>
很多人习惯于将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的 这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果。使用的时候各有各的优势,使用setInterval,需要手动的停止tick触发。
而使用方法中嵌套setTimeout,可以根据方法内部本身的逻辑不再调用setTimeout就等于停止了触发。其实两个东西完全可以相互模拟,具体使用那个,看当时的需要而定了。
除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址:https://tangjiusheng.cn/js/85.html
原文地址:https://tangjiusheng.cn/js/85.html
大家都在看
- localstorage.setitem用法(读取localstorage数据的方法)
- vue3生命周期详解(setup语法糖生命周期函数)
- wampserver Error:(PHP 5.3 and above) Please set request_orde
- 路由器reset是什么意思(路由器的reset怎么用)
- setTimeout()和setInterval()方法的区别?
- js数组去重es6方法(set去重方法最常用)
- es6新特性map数据结构(es6中map和set的区别)
- js延时函数(setInterval和setTimeout的用法区别)
- vue中$set方法原理(this.$set的用法详解)
- 用settimeout如何实现倒计时(settimeout实现倒计时方法)