您的位置:

JS延时定时器——让JavaScript程序按你的规则执行

一、JS延时定时器方法

在JavaScript中,我们用setTimeout()方法和setInterval()方法来实现延时和定时的效果。


// setTimeout()方法,延时一次性执行
setTimeout(function(){
    console.log('延时1秒后执行');
}, 1000);

// setInterval()方法,定时执行,直到 clearInterval()结束
let i = 0;
let intervalId = setInterval(function(){
    i++;
    console.log('第' + i + '次执行');
}, 1000);
setTimeout(function(){
    clearInterval(intervalId);
}, 5000);

二、JS延时器的使用方法

setTimeout()方法和setInterval()方法的使用都需要传递两个参数,第一个参数是一个函数,第二个参数是表示毫秒数的数字。

setTimeout()方法的函数只执行一次,执行后就结束了。

setInterval()方法的函数会每隔一段时间重复执行,除非你使用clearInterval()函数停止它。

三、定时器延时程序

在一些场合下,我们需要延时一段时间后再运行程序。这时候就可以使用setTimeout()方法来实现定时效果。


// 例子1:延迟3秒后弹出提示框
setTimeout(function(){
    alert('三秒后弹出提示框');
}, 3000);

// 例子2:延迟5秒后更改背景颜色
setTimeout(function(){
    document.body.style.backgroundColor = 'red';
}, 5000);

四、定时器延时器

setInterval()方法会每隔一段时间重复执行一次,除非用clearInterval()函数停止它。


// 例子1:每秒钟打印一次当前时间
setInterval(function(){
    let now = new Date();
    console.log(now);
}, 1000);

// 例子2:每隔2秒钟把一组数字写入文档
let i = 0;
setInterval(function(){
  let element = document.createElement('div');
  element.innerHTML = i++;
  document.body.appendChild(element);
}, 2000);

五、JS延时定时器加递归函数

递归函数可以让延时定时器变得更有用。它可以让定时器每隔一段时间就不停地执行一段代码。


// 例子:每一秒钟弹出一个提示
function repeat(func, interval) {
  var timerId = setInterval(function() {
    func();
  }, interval);
  return timerId;
}

var hello = 0;
function sayHello() {
  hello++;
  if (hello > 5) {
    clearInterval(timerId);
  } else {
    setTimeout(function() {
      alert("Hello!");
      sayHello();
    }, 1000);
  }
}
var timerId = repeat(sayHello, 2000);

六、JS延时定时器越来越快

在使用setInterval()方法时,它的执行时间是从
“开始时间 + 延迟时间 = 执行时间”
这样的公式计算的。但是实际应用中,我们可能需要设置动态的延迟时间,让程序的执行速度越来越快。


// 例子:每隔3秒钟执行一次,延时时间越来越短,直到延时时间为0
let delay = 3000;
let timerId = setTimeout(function tick() {
  console.log('执行了一次');
  delay -= 100;
  if(delay < 0) delay = 0;
  timerId = setTimeout(tick, delay);
}, delay);

七、断开延时定时器

在一些情况下,我们需要“断开”一个已经运行的setTimeout()或setInterval(),以防止程序继续执行。


// 例子:每3秒钟执行一次,执行5次后停止
let i = 0;
let intervalId = setInterval(function(){
    i++;
    console.log('第' + i + '次执行');
    if(i >= 5) clearInterval(intervalId);
}, 3000);

八、关断延时定时器

断电或者关闭网页时,尚未执行的setTimeout()或setInterval()操作可能会引起不必要的麻烦。为了避免这些问题,我们需要关闭这些定时器。


// 例子:延时10秒后停止
let i = 0;
let timeoutId = setTimeout(function(){
    console.log('延时执行了一次');
}, 10000);
window.addEventListener('beforeunload', function(){
    clearTimeout(timeoutId);
});

九、PLC断电延时定时器

在PLC(Programmable Logic Controller,可编程逻辑控制器)中,断电延时定时器是一种常用的计时方式,它可以在PLC断电后延时若干秒再次启动。
但在JS中,JS程序与硬件不同,需要判断当前时间和启动时间的差值,来判断是否需要执行延时操作。


function plcDelay(ms){
    let now = new Date().getTime();
    while(new Date().getTime() < now + ms){
    }
}
// 例子:延时1秒,然后输出“延时1秒后执行”
console.log('开始执行');
plcDelay(1000);
console.log('延时1秒后执行');
JS延时定时器——让JavaScript程序按你的规则执行

2023-05-18
js延时执行程序,js延时执行程序是什么

本文目录一览: 1、JS中如何解决for循环中的延迟执行问题 2、js延时5秒用find写法 3、如何用javascript设置延时执行 4、实现javascript的延期执行或者重复执行的两个函数

2023-12-08
js延时执行事件实例,js延时函数

2022-11-24
请问如何能让js代码按顺序执行(请问如何能让js代码按顺序执

本文目录一览: 1、如何确保JavaScript的执行顺序 2、如何让多个 JavaScript 动画按一定的顺序排队执行 3、js 怎么让方法执行有先后顺序 4、请问如何能让js代码按顺序执行 5、

2023-12-08
JavaScript延时器的使用方法和注意事项

2023-05-18
JS 定时器的多方位详解

2023-05-21
javascript简要笔记,JavaScript读书笔记

2022-11-17
JS延时执行

2023-05-20
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
javascript一句话笔记,javascript基本语句

2022-11-16
php定时器的写法是什么

2022-11-22
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
JavaScript中有效的定时器——settimeout和

2023-05-18
javascript入门笔记1的简单介绍

2022-11-18
js执行代码原理(js编译原理)

本文目录一览: 1、js 中的自执行函数到底是怎么运行的? 2、JS编程是什么意思? 3、js的问题,面试别人问了我以下问题,js的执行原理是什么, 4、javascript的执行原理 5、js的工作

2023-12-08
js计时器代码2020年新款(js 计时)

本文目录一览: 1、Js倒计时代码精确到毫秒。 2、js计时器中setTimeout和setInterval的区别和使用 3、用JS实现钟表计时器功能 4、JS 5秒倒计时的代码怎么写?时间要实时显示

2023-12-08
计时器的js代码(计时器的js代码是多少)

本文目录一览: 1、js计时器中setTimeout和setInterval的区别和使用 2、提问一段关于倒计时的javascript代码,请大神指点 3、怎样用javascript做一个计时器 4、

2023-12-08
CMD延时执行命令

2023-05-22
包含如何使用javascript时的词条

2022-11-20