【JavaScript】setTimeout与setInterval

setTimeout经常与setInterval混用,这东西常见于定时调用一段函数,比如在《【JavaScript】一个同步于本地时间的动态时间》(点击打开链接)中一个简单的setInterval时钟,你也可以写成如下的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>clock</title>
</head>

<body>
<span id="clock"></span>
</body>
</html>
<script>
clock();
function clock(){
	document.getElementById("clock").innerHTML=new Date();
	setTimeout("clock()",1000);
}
</script>

效果如下:

可是setTimeout的实际意思却没多少人关注,

其实质意思是,经过N毫秒之后才执行以下的函数,比如如下代码:

<script>
setTimeout("test()",5000);
alert("ok");
function test(){
	alert("5秒之后……");
}
</script>

test()这个函数预定在5秒后执行,然后程序不停地往下读,因此其效果就如下图了:

因此setTimeout之所以可以做出与setInterval同样的效果,

是因为setInterval设定XX函数每隔N毫秒执行一次。因此,实现如时间那种按时执行的特效,setInterval则要写在外面,网页一开始创建一条线程,这条线程每隔N毫秒就执行一次某某代码。

setTimeout则要写在函数的里头,一开始先被调用一次,之后还要过N毫秒后设置调用自己,N毫秒调用了自己之后,任务就完成了。但是自己中还有一条N毫秒调用了自己的任务。因此依次生生不息地循环,也做到了setInterval的效果。

时间: 2024-11-09 01:02:53

【JavaScript】setTimeout与setInterval的相关文章

Javascript 笔记与总结(2-13)定时器 setTimeout 和 setInterval

定时器可以让 js 效果每隔几秒钟执行一次或者 n 秒之后执行某一个效果.定时器不属于 javascript,是 window 对象提供的功能. setTimeout 用法: window.setTimeout('语句',毫秒); //指定毫秒后执行一次语句 [例] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>D

Javascript异步编程之setTimeout与setInterval详解分析(一)

Javascript异步编程之setTimeout与setInterval 在谈到异步编程时,本人最主要会从以下三个方面来总结异步编程( 注意: 特别解释:是总结,本人也是菜鸟,所以总结不好的,请各位大牛多多原谅!) 1. setTimeout与setInterval详细分析基本原理. 接下来这篇博客会总结setTimeout和setInterval基本点,对于上面三点会分三篇博客分别来总结,对于知道上面三点的人,但是又不是非常了解全面知识点的码农来说,没有关系的,我们可以慢慢来学习,来理解,或

Javascript定时器(二)——setTimeout与setInterval

一.解释说明 1.概述 setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段 setInterval:周期性地调用一个函数(function)或者执行一段代码. 2.语法 setTimeout: var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]); var timeoutID = window.setTimeout(code, delay); timeoutID 是该延时操作的数字ID,

Javascript 定时器篇 setTimeout和setInterval

标题定时器,让我想起了年代久远的VB,那时候也有个定时器,长的跟闹钟一样()相信跟我一样用过VB的人都不陌生.很基础的东西,但是作用却很大.记得那时候我还不太会用,忘记是用来做动画了,还是干嘛了.不过如今,已经入门编程语言了,那么就用CODE来说吧.今天我么要说的是WEB 前端技术 Javascript 的2大定时器.存活了很久,用处依旧大大大的~~~他们分别就是 setTimeout和setInterval. Javascript本身区分大小写,所以要注意 setTimeout和setInte

Javascript异步编程之setTimeout与setInterval详解

http://www.cnblogs.com/tugenhua0707/ 在谈到异步编程时,本人最主要会从以下三个方面来总结异步编程( 注意: 特别解释:是总结,本人也是菜鸟,所以总结不好的,请各位大牛多多原谅!) 1. setTimeout与setInterval详细分析基本原理. 接下来这篇博客会总结setTimeout和setInterval基本点,对于上面三点会分三篇博客分别来总结,对于知道上面三点的人,但是又不是非常了解全面知识点的码农来说,没有关系的,我们可以慢慢来学习,来理解,或者

javascript中的setInterval()和setTimeout()用法比较

setTimeout()和setInterval() 何时被调用执行 定义 setTimeout()和setInterval()经常被用来处理延时和定时任务.setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除. 从定义上我们可以看到两个函数十分类似,只不过前者执行一次,而后者可以执行多次,两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒

Javascript的setTimeOut()和setInterval()的定时器用法

Javascript用来处理延时和定时任务的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等.但它们的应用是有区别的. setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除.也就是说setTimeout()只执行一次,setInterval()

javascript的setTimeout以及setInterval休眠问题。

前端码农们在做项目中时候,必定不可少的需要做到轮播效果.但是有些特殊的需求,比如: 需要做到第一个容器内容轮播滚动之后,第二个容器内部再轮播滚动,再第三个容器内容轮播滚动. 这时候我的一开始的思路是:每个容器都看成一个单独的轮播效果,既然是依次的滚动就设定滚动开始时间差,三个setTimeout()分别延迟差. HTML 代码: <div id="warp">        <div class="items">            <

【JavaScript】JavaScript中的Timer是怎么工作的( setTimeout,setInterval)

原文(http://www.yeeyan.org/articles/view/luosheng/24380) 作为入门者来说,了解JavaScript中timer的工作方式是很重要的.通常它们的表现行为并不是那么地直观,而这是因为它们都处在一个单一线程中.让我们先来看一看三个用来创建以及操作timer的函数. var id = setTimeout(fn, delay); - 初始化一个单一的timer,这个timer将会在一定延时后去调用指定的函数.这个函数(setTimeout)将返回一个唯

JavaScript: 再论setTimeout、setInterval。其第三个参数和this的讨论,超时嵌套和内存泄漏

最近用setTimeout.setInterval,因为要传入的函数要用到this,所以深入了解了一番! setTimeout和setInterval函数的第三个参数本来只是定义语言类型,后来在非IE浏览器下支持传递参数,并且在不同浏览器下支持的不同. 原来的setTimeout函数定义: var timeoutID = window.setTimeout(func, delay[, lang]); 在Chrome和FF下定义被修改: var timeoutID = window.setTime