setInterval與setTimeout的區別

来源:https://www.cnblogs.com/DSC1991/archive/2018/03/28/8665891.html
-Advertisement-
Play Games

在製作網頁動態效果時,一定會遇到某些需求,要求某段程式等待多時時間後再開始執行,就像在我們的生活中一樣,待會兒再開始做一件事。在JavaScript中主要通過定時器實現此類需求,本文將對定時器做一個概括,正對setTimeout()做一個詳細用法總結。 一.setInterval與setTimeou ...


 在製作網頁動態效果時,一定會遇到某些需求,要求某段程式等待多時時間後再開始執行,就像在我們的生活中一樣,待會兒再開始做一件事。在JavaScript中主要通過定時器實現此類需求,本文將對定時器做一個概括,正對setTimeout()做一個詳細用法總結。

一.setInterval與setTimeout的區別

setInterval

setInterval()方法可按照指定的周期來調用函數或者計算表達式(以毫秒為單位)

語法:

setInterval(函數表達式,毫秒數);

setInterval()會不停的調用函數,直到clearInterval()被調用或者視窗被關閉,由 setInterval()返回的ID值可用作clearInterval()方法的參數。

 

setTimeout

setTimeout()方法用於在指定毫秒數後再調用函數或者計算表達式(以毫秒為單位)

語法:

setTimeout(函數表達式,毫秒數);

setTimeout()只執行函數一次,如果需要多次調用可以使用setInterval(),或者在函數體內再次調用setTimeout()

 

區別

  通過以上分析可以看出,setTimeout與setInterval的主要區別是:

  setTimeout()方法只運行一次,也就是說當達到設定的時間後就出發運行指定的代碼,運行完後就結束了,如果還想再次執行同樣的函數,可以在函數體內再次調用setTimeout(),可以達到迴圈調用的效果。

  setInterval()是迴圈執行的,即每達到指定的時間間隔就執行相應的函數或者表達式,是真正的定時器。

二.setTimeout()的用法

  先寫個最簡單的demo,如下:

  

 
 1 <!DOCTYPE html>
 2  <html lang="en">
 3      <head>
 4            <meta charset="utf-8">
 5            <script>
 6                   setTimeout("alert('hello')",2000);
 7            </script>
 8      </head>
 9     <body>
10     </body>
11 </html>
複製代碼

頁面會在停留2秒之後彈出對話框,註意setTimeout不會自動重覆執行!

當然,setTimeout也可以執行function,還可以不斷重覆執行!

你可以看到h1中的文本數字在一秒一秒地遞增!

更加靈活的是,你還可以指定重覆執行的次數,如下:

if判斷中的數字,是用來限制重覆執行次數的條件。

三.clearTimeout()

要使用clearTimeout(),需要我們設定setTimeout()時, 給予這setTimeout()一個名稱, 這名稱就是timeoutID ,我們叫停時,就是用這 timeoutID 來叫停

 
 1  <!DOCTYPE html>
 2   <html lang="en">
 3       <head>
 4             <meta charset="utf-8">
 5             <script>
 6                   var timeId= setTimeout("alert('hello')",2000);
 7                    clearTimeout(timeId);
 8             </script>
 9       </head>
10      <body>
11      </body>
12  </html>
 

原計劃1秒後彈出的警示框,被自然叫停了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉自:https://blog.csdn.net/murphykwu/article/details/52457667 selinux的概念如上一篇鏈接所示: http://www.cnblogs.com/linhaostudy/p/8659662.html 一、SELinux資源訪問基本概念 SE ...
  • 首先,確保手機打開了USB調試。如果還是出現檢測不到WebView頁面,主要有一下幾種情況。 反應慢,稍等一會 華為手機,請安裝華為手機助手,插上手機後會提示安裝的。不安裝的話,會出現不穩定的情況 要調試的APP沒有打開WebView的調試模式。會出現有的App能Inspect,有的不能。可參考Co ...
  • iOS平臺是按照一直有網路連接的思路來設計的,開發者利用這一特點創造了很多優秀的第三方應用。大多數的iOS應用都需要聯網,甚至有些應用嚴重依賴網路,沒有網路就無法正常工作。 "在訪問網路失敗的時候 ,應用沒有做出適當的提示“是蘋果的iOS審核團隊拒絕一個應用的常見理由。蘋果要求你必須先檢測網路連接狀 ...
  • 引子: 別的複雜前端開發技術不會,用得多的還是手寫代碼,手動處理。 3年前手寫合併壓縮js和css文件的asp腳本代碼目前還能正常運行,也就沒有多大使用別的技術的動力。 直到近期被一個問題糾結著,今天花了一天時間摸索完成了一個後端構建功能。 目前接觸到的項目前端開發模式基本上是一樣的 1. 項目不會 ...
  • <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <b>加粗</b> <u>下劃線</u> <i>傾斜</i> <p>一個段落</p> <a name="here">回到此處</a> <ol typ ...
  • 大多數情況下容易忘記的快捷鍵,在此整理了一下。 編輯快捷鍵:cmd+L:選擇行(重覆按下將下一行加入選擇);cmd+D:選擇詞(重覆按下時多重選擇相同的詞進行多重編輯);cmd+shift+D 複製游標所在整行,插入到下一行control+shift+M:選擇括弧的內容; cmd+shift+ent ...
  • H5中新增的表單屬性:autofocus(獲得焦點)、placeholder(給出提示信息)、list(類似下拉列表)、autocomplete(有記錄的話會自動出現記錄信息)input元素:color(顏色選擇器) date(日期選擇器) time(時間選擇器) datetime-local(本地 ...
  • background-clip屬性的通俗作用就是指定元素背景所在的區域,有四種取值 1、border-box border-box是預設值,表示元素的背景從border區域(包括border)以內開始保留背景。 簡單代碼如下: 效果如下: 從上圖我們可以看出,元素背景預設是存在於邊框及以內的區域,但 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...