JavaScript 定时器

作者 : 开心源码 本文共1675个字,预计阅读时间需要5分钟 发布时间: 2022-05-14 共155人阅读

前言

什么是定时器?JS提供了少量原生方法来实现延时去执行某一段代码。下面来简单详情一下 setTimeout,setInterval 定时器。

setTimeout

用于在一段时间后仅执行一次函数或者指定的代码段。

语法

window.setTimeout(function, milliseconds)
  • 第一个参数是要执行的函数。
  • 第二个参数指示执行前的毫秒数(1秒= 1000毫秒)。

示例:单击按钮2秒钟后将显示提醒消息

<!DOCTYPE html><html><title></title><body><p>等待2秒后,点击第一个按钮,提醒"Hello world"。</p><p>点击第二个按钮,防止第一个函数执行。(必需在2秒之前点击)</p><button onclick="myFunc()">点击</button><button onclick="myStopFunc()">中止alert</button><script>var t;function myFunc() {  t = setTimeout(function(){ alert("Hello world"); }, 2000);}function myStopFunc() {  clearTimeout(t);}</script></body></html>

中止执行
clearTimeout() 方法中止执行setTimeout()中指定的函数。

window.clearTimeout(var)

clearTimeout() 方法使用从setTimeout()返回的变量。

t = setTimeout();clearTimeout(t);

假如尚未执行该函数,则可以通过调用clearTimeout() 方法来中止执行。

setInterval

按照指定的周期(以毫秒计)来调用函数或者计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或者窗口被关闭。

语法:

window.setInterval(function, milliseconds)
  • 第一个参数是我们要执行的函数
  • 第二个参数指示每次执行之间的时间间隔的长度。

示例:每秒执行一次称为“ startTimer”的功能

<!DOCTYPE html><html><title></title><head><style>#result {   display: flex;   justify-content: center;   color: #ec181e;   font-size: 25vw;   font-weight: 900;   text-shadow: 0 6px 4px rgba(255, 100, 100, 0.6);}</style></head><body><div id="result">00:00:00</div><button onclick="stopTimer()">中止时间</button><script>// 每1秒执行一次startTimer()var t = setInterval(startTimer, 1000);function startTimer() {  var date = new Date();  document.getElementById("result").innerHTML = date.toLocaleTimeString();}// 取消使用setInterval()创立的重复动作function stopTimer() {   clearInterval(t);}</script></body></html>

中止执行
clearInterval() 方法中止执行 setInterval() 中指定的函数。

window.clearInterval(var)

clearInterval() 方法使用从setInterval()返回的变量。

t = setInterval();clearInterval(t);

区别:

  • setTimeout 允许设置一个超时对象,超时后执行这个对象,但是只执行一次,无周期。
  • setInternval 允许设置一个超时对象,超时后执行这个对象,周期等于超时对象指定的时间,周期为无限循环。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » JavaScript 定时器

发表回复