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秒後執行');

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244335.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:01
下一篇 2024-12-12 13:01

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • 掌握magic-api item.import,為你的項目注入靈魂

    你是否曾經想要導入一個模塊,但卻不知道如何實現?又或者,你是否在使用magic-api時遇到了無法導入的問題?那麼,你來到了正確的地方。在本文中,我們將詳細闡述magic-api的…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨著深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29

發表回復

登錄後才能評論