Javascript中setTimeOut和setInterval的定时器用法
JavaScript中的定时器:setTimeout与setInterval
JavaScript中的setTimeout和setInterval是两个强大的定时器函数,用于处理延迟和定时任务。这些任务包括但不限于打开网页一段时间后弹出登录框,或者页面每隔一段时间发送异步请求获取数据。尽管这两个函数都涉及时间相关的操作,但他们的使用方式和应用场景却有所不同。
setTimeout() 函数
setTimeout() 方法用于在指定的毫秒数后调用函数或执行代码。它只执行一次。它的基本语法如下:
```javascript
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
// 或
var timeoutID = window.setTimeout(code, [delay]);
```
`timeoutID` 是定时器的ID号,可以在clearTimeout()函数中使用以取消定时器。
`func` 是要执行的函数。
`code` (作为替代语法)是要执行的代码字符串。
`delay` 是延迟的时间,以毫秒为单位。如果没有指定,默认为0。
下面是一个简单的示例,展示如何使用setTimeout()在5秒后更新页面元素的内容:
```javascript
function timeout() {
document.getElementById('res')nerHTML = Math.floor(Math.random() 100) + 1;
}
setTimeout("timeout()", 5000);
```
setInterval() 函数
与setTimeout()不同,setInterval()函数会在每隔指定的毫秒数重复执行一次函数或代码,直到clearInterval()函数被调用以清除定时器。其基本语法与setTimeout()相似,但主要区别在于其重复执行的特点。
下面是一个示例,展示如何使用setInterval()每隔一秒更新页面元素的内容,并总共执行10次:
```javascript
var tt = 10;
function timego() {
tt--;
document.getElementById("tt")nerHTML = tt;
if (tt == 0) {
window.location.href = '/';
return false;
}
}
var timer = window.setInterval("timego()", 1000);
```
在这个例子中,当变量tt减少到0时,页面将重定向到首页。我们定义了一个名为timer的定时器,使用setInterval()每隔一秒调用一次timego()函数。这样,timego()会执行10次。如果你想停止这个定时器,你可以使用以下代码:
```javascript
window.clearInterval(timer);
```
JavaScript中的定时器功能强大且灵活,可以用于处理各种延迟和定时任务。尽管这两个函数都以单线程的方式在浏览器的JavaScript引擎中运行,但在实际应用中,复杂的任务可能需要排队执行,这可能会导致定时器的精度问题。但这并不妨碍我们在实际开发中使用这两个定时器函数来处理各种定时任务。希望这篇文章能帮助你更好地理解JavaScript中的setTimeout和setInterval函数。