白骑士的JavaScript教学进阶篇之浏览器API 3.4.1 定时器(setTimeout, setInterval)

        在深入学习 JavaScript 及其相关技术时,了解浏览器提供的各种 API 是非常重要的。这些 API 允许开发者与浏览器环境互动,扩展网页的功能,并为用户提供更丰富的体验。在本节中,我们将介绍浏览器 API 中非常常用的部分:定时器。定时器允许我们控制代码的执行时间,延迟任务的执行,或者让任务定期运行。定时器是 JavaScript 提供的一种机制,可以在指定的时间后执行某段代码,或定期执行某段代码。在浏览器环境中,‘setTimeout‘ 和 ‘setInterval‘ 是两个非常常用的定时器函数。

‘setTimeout‘:延迟执行代码

        ‘setTimeout‘ 函数用于在指定的延迟时间后执行一次代码。它接受两个参数:一个回调函数和延迟时间(以毫秒为单位)。当延迟时间到达时,回调函数将被执行。

基本用法

function sayHello() {
    console.log("Hello, world!");
}

setTimeout(sayHello, 2000); // 2秒后执行sayHello函数

        在这个例子中,‘sayHello‘ 函数将在 2 秒后被执行,并在控制台输出 ‘"Hello, world!"‘。

使用匿名函数

        你也可以直接在 ‘setTimeout‘ 中使用匿名函数,而不必定义一个命名函数:

setTimeout(function() {
    console.log("This will be logged after 3 seconds");
}, 3000);

取消定时器

        如果在定时器触发之前你想取消它,可以使用 ‘clearTimeout‘ 函数。需要注意的是,‘setTimeout‘ 返回一个定时器 ID,通过该 ID 可以取消定时器。

let timerId = setTimeout(function() {
    console.log("This will not be logged");
}, 5000);

clearTimeout(timerId); // 取消定时器

        在这个例子中,‘clearTimeout‘ 函数取消了定时器,因此 ‘"This will not be logged"‘ 不会被输出。

‘setInterval‘:定期执行代码

        ‘setInterval‘ 函数用于在指定的时间间隔内重复执行代码,直到被取消。它接受的参数与 ‘setTimeout‘ 类似:一个回调函数和间隔时间(以毫秒为单位)。

基本用法

function greet() {
    console.log("Hello again!");
}

setInterval(greet, 1000); // 每隔1秒执行一次greet函数

        在这个例子中,‘greet‘ 函数会每隔 1 秒执行一次,控制台将持续输出 ‘"Hello again!"‘。

使用匿名函数

        同样地,你可以使用匿名函数直接在 ‘setInterval‘ 中编写代码:

setInterval(function() {
    console.log("Repeating every 2 seconds");
}, 2000);

取消定时器

        与 ‘setTimeout‘ 类似,‘setInterval‘ 返回一个定时器 ID,通过 ‘clearInterval‘ 函数可以取消这个定时器,从而停止定期执行。

let intervalId = setInterval(function() {
    console.log("This will stop soon...");
}, 1000);


setTimeout(function() {
    clearInterval(intervalId); // 5秒后取消定时器
    console.log("Interval stopped");
}, 5000);

        在这个例子中,定时器每秒输出一次 ‘"This will stop soon..."‘,但在 5 秒后被取消,随即输出 ‘"Interval stopped"‘。

定时器的应用场景

        定时器在网页开发中有许多应用场景。以下是一些常见的用例:

  • 延迟显示提示或消息:在用户执行某个操作后,延迟显示一个提示消息或确认框。
  • 轮播图:通过 ‘setInterval‘ 实现图片轮播效果,每隔一定时间切换到下一张图片。
  • 倒计时功能:使用 ‘setTimeout‘ 或 ‘setInterval‘ 实现倒计时,定时更新页面上的时间显示。
  • 动态数据刷新:通过定时器定期从服务器获取数据并更新页面内容。

总结

        ‘setTimeout‘ 和 ‘setInterval‘ 是非常强大的工具,它们允许开发者对代码的执行时间进行精确控制。无论是延迟任务的执行还是周期性地执行某些操作,定时器都提供了极大的灵活性。然而,在使用定时器时,也需要注意避免不必要的性能开销,例如在不需要定时器时及时取消它们,以免造成资源浪费。通过合理使用定时器,开发者可以为用户创造更加流畅、动态的网页体验,这也是前端开发中至关重要的技能之一。

猜你喜欢

转载自blog.csdn.net/JeremyTC/article/details/143101092