
JavaScript计时器事件深度解析:setTimeout与clearTimeout
45KB |
更新于2024-08-30
| 46 浏览量 | 举报
收藏
“javascript计时器事件使用详解”
在JavaScript中,计时事件的使用主要涉及到两个核心函数:`setTimeout()`和`clearTimeout()`。这些函数允许开发者在特定时间间隔后执行一段代码或取消已设置的计时任务。下面将详细阐述这两个函数的用法和应用场景。
1. `setTimeout()`
`setTimeout()`函数用于在指定的毫秒数后执行一个函数或者一段代码。其基本语法如下:
```javascript
var timeoutId = setTimeout(function, delay);
```
- `function`:这是要延迟执行的函数或者是包含JavaScript语句的字符串。
- `delay`:以毫秒为单位的时间,表示延迟多久后执行函数或代码。
在使用`setTimeout()`时,它会返回一个`timeoutId`,这个ID可以用来取消相应的计时器。例如:
```javascript
var t = setTimeout("alert('5 seconds!')", 5000);
```
这段代码会在5秒钟后弹出一个警告框显示“5 seconds!”。如果需要取消这个定时器,可以使用`clearTimeout()`并传入`timeoutId`:
```javascript
clearTimeout(t);
```
2. `clearTimeout()`
`clearTimeout()`函数用于取消由`setTimeout()`设置的计时器。它的语法非常简单:
```javascript
clearTimeout(timeoutId);
```
其中,`timeoutId`是之前`setTimeout()`返回的ID。例如:
```javascript
var t = setTimeout(function() {
alert('This will not be executed');
}, 1000);
// After some time
clearTimeout(t);
```
在这个例子中,由于调用了`clearTimeout(t)`,所以原本计划1秒后执行的函数将不会被执行。
3. 示例应用
- 定时消息展示
一个简单的示例是,当用户点击按钮时,5秒后弹出一个警告框。HTML 和 JavaScript 如下:
```html
<html>
<head>
<script type="text/javascript">
function timedMsg() {
setTimeout("alert('5 seconds!')", 5000);
}
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alert box!" onClick="timedMsg()">
</form>
</body>
</html>
```
- 无限循环计时器
另一个例子是创建一个从0开始无限递增的计数器,每次增加1,直到用户停止。HTML 和 JavaScript 如下:
```html
<html>
<head>
<script type="text/javascript">
var c = 0;
var t;
function timedCount() {
document.getElementById('txt').value = c;
c = c + 1;
t = setTimeout("timedCount()", 1000);
}
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>
</html>
```
在这个例子中,点击“Start count!”按钮后,文本框中的数字每秒会增加1,直到用户手动停止计时器。
总结,JavaScript的计时器事件是实现动态效果和异步操作的重要工具。通过`setTimeout()`和`clearTimeout()`,开发者可以控制代码在特定时间点的执行,从而创建丰富的用户体验和复杂的程序逻辑。
相关推荐




















weixin_38674763
- 粉丝: 6
最新资源
- Java编写的CMA考试模拟器:医疗助理认证学习工具
- Stuyvesant计算机图形学课程笔记与实践练习
- 数据收集处理与清理项目:三星加速度计数据分析
- 命令行界面下的UIUC课程探索工具CLCourseExplorer
- JavaScript中的booth-loopforever循环陷阱
- 2020工业互联网安全白皮书集锦:全面分析与展望
- OCaml密码保险箱:运维中的技术创新
- Athena:Python实现的端到端自动语音识别引擎
- DOPE ROS包实现已知物体的6-DoF姿态估计
- FlashTorch:PyTorch神经网络可视化工具快速上手
- sc_audio_mixer:音频混合器组件及示例应用
- MakerFarm Prusa i3v 12英寸:使用V型导轨的3D打印机开源项目
- Xerox 550打印驱动安装手册及贡献指南
- 小区物业管理新升级:基于Java+Vue+SpringBoot+MySQL的后台系统
- 大规模测试与黑客攻击:K8hacking在性能敏感应用中的实践
- SSL编程基础与Poodle攻击算法实现教程
- 前端资源整理:中国移动重庆Java笔试题解析
- LGL大图布局的魔幻粒子Java源码实现
- weatherCapture: 0.9测试版技术解析与执行指南
- 西雅图社区变化与911紧急响应数据分析
- 简化Require.js配置,使用Bower进行快速项目安装
- MATLAB心脏分析工具:二维超声心动图序列的综合研究
- KinhDown云盘文件高效下载技巧
- Safari浏览器新插件:lgtm.in实现快速图片插入