javascript的setTimeout()使用方法总结


Posted in Javascript onNovember 20, 2021

1、前言

jssetTimeout方法用处比较多,通常用在页面刷新了、延迟执行了等等。但是很多javascript新手对setTimeout的用法还是不是很了解。虽然我学习和应用javascript已经两年多了,但是对setTimeout方法,有时候也要查阅资料。今天对js的setTimeout方法做一个系统地总结。

2、setInterval与setTimeout的区别

说道setTimeout,很容易就会想到setInterval,因为这两个用法差不多,但是又有区别,今天一起总结了吧!

3、setTimeout

定义和用法: setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。  

语法: setTimeout(code,millisec)  

参数: code (必需):要调用的函数后要执行的 JavaScript 代码串。millisec(必需):在执行代码前需等待的毫秒数。  

 提示: setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。

setInterval:

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法: setInterval(code,millisec[,"lang"])

参数: code 必需。要调用的函数或要执行的代码串。millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

返回值: 一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。

区别:

通过上面可以看出,setTimeoutsetinterval的最主要区别是:

setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束。如果运行的代码中再次运行同样的setTimeout命令,则可循环运行。(即 要循环运行,需函数自身再次调用 setTimeout()

setinterval是循环运行的,即每到设定时间间隔就触发指定代码。这是真正的定时器。

setinterval使用简单,而setTimeout则比较灵活,可以随时退出循环,而且可以设置为按不固定的时间间隔来运行,比如第一次1秒,第二次2秒,第三次3秒。

我个人而言,更喜欢用setTimeout多一些!

4、setTimeout的用法

让我们一起来运行一个案例,首先打开记事本,将下面代码贴入,运行一下效果!

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1> <font color=blue> haorooms博客示范网页 </font> </h1>
<p> 请等三秒!</p>

<script>
setTimeout("alert('对不起, haorooms博客要你等候多时')", 3000 )
</script>

</body> 
</html>

页面会在停留三秒之后弹出对画框!这个案例应用了setTimeout最基本的语法,setTimeout不会自动重复执行!

setTimeout也可以执行function,还可以不断重复执行!

我们再来一起做一个案例:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
var x = 0
function countSecond()
{
   x = x+1
  document.haorooms.haoroomsinput.value=x
  setTimeout("countSecond()", 1000)
}
</script>
</head>
<html>
<body>

<form name="haorooms">
   <input type="text" name="haoroomsinput"value="0" size=4 >
</form>

<script>
countSecond()
</script>

</body> </html>

我们可以看到input文本框中的数字在一秒一秒的递增!所以,setTimeout也可以制作网页中的时间跳动!

没有案例,学习起来不会很快,我们再来一起做一个例子,计算你在haorooms某个页面的停留时间:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
x=0
y=-1
function countMin()
{ y=y+1
  document.displayMin.displayBox.value=y
  setTimeout("countMin()",60000)
}
function countSec()
{ x = x + 1
  z =x % 60
  document.displaySec.displayBox.value=z
  setTimeout("countSec()", 1000)
}
</script> </head>
<body>
<table> <tr valign=top> <td> 你在haorooms博客中的停留时间是: </td>
<td> 
<form name=displayMin>
   <input type=text name=displayBox value=0 size=4 >
</form> 
</td>
<td> 分 </td>
<td> 
<form name=displaySec> </td>
<td> <input type=text name=displayBox value=0 size=4 >
</form>
 </td>
<td> 秒。</td> </tr>
 </table>
<script>
countMin()
countSec()
</script>
</body>
</html>

怎么样,通过上面的例子,对setTimeout()的用法,相信你都了解了吧!

5、clearTimeout( )

我们再来一起看一下 clearTimeout( )

clearTimout( ) 有以下语法 :  

clearTimeout(timeoutID)

要使用 clearTimeout( ) , 我们设定 setTimeout( ) 时 , 要给予这 setTimout( ) 一个名称 , 这名称就是 timeoutID , 我们叫停时 , 就是用这 timeoutID 来叫停 , 这是一个自定义名称 , 但很多人就以 timeoutID 为名。

在下面的例子 , 设定两个 timeoutID, 分别命名为 meter1 及 meter2,

如下 :

timeoutID  ↓ meter1 = setTimeout(“count1( )”, 1000) meter2 = setTimeout(“count2( )”, 1000)

使用这 meter1 及 meter2 这些 timeoutID 名称 , 在设定 clearTimeout( ) 时 , 就可指定对哪一个 setTimeout( ) 有效 , 不会扰及另一个 setTimeout( ) 的操作。

下面请看 clearTimeout()的案例;

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<script>
x = 0
y = 0
function count1()
{ x = x + 1
  document.display1.box1.value = x
  meter1=setTimeout("count1()", 1000)
}
function count2()
{ y = y + 1
  document.display2.box2.value = y
  meter2=setTimeout("count2()", 1000)
}
</script> </head>
<body> 
<p> </br>
<form name="display1">
    <input type="text" name="box1" value="0" size=4 >
    <input type=button value="停止计时" onClick="clearTimeout(meter1) " >
    <input type=button value="继续计时" onClick="count1() " >
</form>
<p>
<form name="display2">
    <input type="text" name="box2" value="0" size=4 >
    <input type=button value="停止计时" onClick="clearTimeout(meter2) " >
    <input type=button value="继续计时" onClick="count2() " >
</form>

<script>
    count1()
    count2()
</script>
</body>
</html>

6、结尾

到此这篇关于javascript的setTimeout()使用方法总结的文章就介绍到这了,更多相关javascript的setTimeout()用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 的addEventListener()及attachEvent()区别分析
May 21 Javascript
Tips 带三角可关闭的文字提示
Oct 06 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
微信小程序实现文件、图片上传功能
Aug 18 Javascript
JavaScript异步操作中串行和并行
Nov 20 #Javascript
vue中 this.$set的使用详解
如何用vue实现网页截图你知道吗
利用 JavaScript 构建命令行应用
Nov 17 #Javascript
Ajax实现异步加载数据
Nov 17 #Javascript
36个正则表达式(开发效率提高80%)
Nov 17 #Javascript
Javascript 解构赋值详情
Nov 17 #Javascript
You might like
php新建文件自动编号的思路与实现
2011/06/27 PHP
PHP安全配置详细说明
2011/09/26 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
浅谈javascript的调试
2015/01/28 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python变量作用范围实例分析
2015/07/07 Python
PyQt5每天必学之组合框
2018/04/20 Python
对python判断是否回文数的实例详解
2019/02/08 Python
kali中python版本的切换方法
2019/07/11 Python
关于python字符串方法分类详解
2019/08/20 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
python如何写try语句
2020/07/14 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
企业党员公开承诺书
2014/03/26 职场文书
企业宣传工作方案
2014/06/02 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技