settimeout和settimeinterval的區別和應用實踐
這兩個方法都可以用來在固定的時間段後去執行一段javascirpt程式碼,不過兩者各有各的應用場景。
實際上,setTimeout和setInterval的語法相同。它們都有兩個引數,一個是將要執行的程式碼字串,還有一個是以毫秒為單位的時間間隔,當過了那個時間段之後就將執行那段程式碼。
不過這兩個函式還是有區別的,setInterval在執行完一次程式碼之後,經過了那個固定的時間間隔,它還會自動重複執行程式碼,而setTimeout只執行一次那段程式碼。
下面看下程式碼,這是settimeout的設定方式先了解一下 首先我們要明白兩個計時器的書寫規範,就是包含兩個引數,第一個是需要執行的函式,第二個是以毫秒為單位的計時單位,
function showTime()
{
var today = new Date();
alert("The time is: " + today.toString());
setTimeout("showTime()", 3000);
}
showTime();
下面是settimeinterval的設定方式
setInterval("showTime()", 3000);
function showTime()
{
var today = new Date();
alert("The time is: " + today.toString());
}
22下面是兩種計時器的區別和應用場景
這兩種方法可能看起來非常像,而且顯示的結果也會很相似,不過兩者的最大區別就是,
setTimeout方法不會每隔5秒鐘就執行一次showTime函式,它是在每次呼叫setTimeout後過5秒鐘再去執行showTime函式。因為setTimeout需要程式執行到函式前才會執行該函式。。。。這意味著假如showTime函式的主體部分需要2秒鐘執行完,那麼整個函式則要每7秒鐘才執行一次
。而setInterval卻沒有被自己所呼叫的函式所束縛,它只是簡單地每隔一定時間就重複執行一次那個函式。
333使用場景::::如果要求在每隔一個固定的時間間隔後就精確地執行某動作,那麼最好使用setInterval,而如果不想由於連續呼叫產生互相干擾的問題,尤其是每次函式的呼叫需要繁重的計算以及很長的處理時間,那麼最好使用setTimeout。
444清空定時器
我們可以吧定時器用一個變數封裝起來
var timer=setInterval("showTime()", 3000);
然後給一個事件觸發器,單擊會暫停,雙擊會繼續執行函式
html:<button id="bb">點選暫停雙擊執行</button>
var stopTim = document.getElementById("bb"); attachEventListener(stopTim, "click", stopGoal, false); function stopGoal() { clearInterval(timer); }
attachEventListener(stopTim, "dbclick", startGoal, false); function stopGoal() { setInterval("showTime()", 3000); }
相關推薦
spring classpath:和classpath*:區別和實際應用
classpath:和classpath*:的含義 classpath: :表示從類路徑中載入資源,classpath:和classpath:/是等價的,都是相對於類的根路徑。資原始檔庫標準的在檔案系統中,也可以在JAR或ZIP的類包中。 classpath*::假設多個JAR包或檔
Mybatis和Hibernate區別和應用場景
hibernate: 是一個標準的ORM框架(物件關係對映)。入門門檻較高,不需要程式寫sql語句,sql語句自動生產了。 特點: 對sql的優化比較困難。 Hibernate對物件的維護和快取要比MyBatis好,對增刪改查的物件的維護要方便。 Hibernate資料庫移植性很好,MyB
NPM依賴包版本號 和 的區別及最佳實踐
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! 你會發現很多專案的依賴包版本號前面會加上~,或者是^,以Angular2為例: 那麼~和^的作用和區別是什麼呢?~會匹配最近的小版本依賴包,比如~1.
mybatis 中 #{} 和 ${} 的區別及應用場景
一、#{} 和 ${} 詳解 動態 sql 是 mybatis 的主要特性之一,在 mapper 中定義的引數傳到 xml 中之後,在查詢之前 mybatis 會對其進行動態解析。mybatis 為我們提供了兩種支援動態 sql 的語法:#{} 以及 ${}
抽象類和介面區別及應用場景
區別如下: 1.抽象類是對類的抽象(包括了屬性和對應的行為). 介面是對某一個行為動作的抽象。 2.抽象類只能單繼承,介面可以實現多繼承。 3.介面中定義的方法不能實現,即使不顯示的將方法宣告為public,他們也是 public。 抽象類中的方法可以
settimeout、setinterval區別和相互模擬
前幾天翻書,看到“避免雙重求值”一節時有提到settimeout()、setinterval() 建議傳入函式而不是字串以作為第一個引數,所以這裡總結一下settimeout()和setinterval()的區別,以及它們之間的相互模擬。 setTimeout(): 方法用
BeanFactoryPostProcessor和BeanPostProcessor區別和應用場景
spring啟動初始化類順序 按照xml配置檔案中類的定義順序載入類並建立類的例項。 假設當前要載入X類,則先執行X的static塊。如果此時X的父類Y還沒有載入,則先查詢配置檔案來載入Y,執行Y的
NPM依賴包版本號~和^的區別及最佳實踐
你會發現很多專案的依賴包版本號前面會加上~,或者是^,以Angular2為例: 那麼~和^的作用和區別是什麼呢? ~會匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x版本,但是不包括1.3.0 ^會匹配最新的大版本依賴包,比如^1.2.3會
jetty和tomcat區別與應用場景
Jetty更滿足公有云的分散式環境的需求,而Tomcat更符合企業級環境 Jetty更符合GAE(Google App Engine, 是 Google 管理的資料中心中用於 WEB 應用程式的開發和託管的平臺) 的需求, 即雲環境的需求,亦分散式環境的需求。 1
知識點 - python 裝飾器@staticmethod和@classmethod區別和使用
定義 整潔 參數 sel spa elf pri Go assm 1.通常來說,我們使用一個類的方法時,首先要實例化這個類,再用實例化的類來調用其方法 class Test(object): """docstring for Test""" def
hashCode() 和equals() 區別和作用(轉)
person set集合 static out fin 解決 詳細 返回 art 出處:https://www.jianshu.com/p/5a7f5f786b75 本章的內容主要解決下面幾個問題: 1 equals() 的作用是什麽? 2 equal
Java之JSONObject存取值以及和HashMap區別, optString()和getString()區別和他的遍歷方式
結論: 1.JSONObject和HashMap用法上是一樣的,用put()方法存對於的Key-values鍵值對,取可用optString(key)和getString(key),get(key),存入的是什麼型別,取出來的時候就是什麼型別 2**.optString()在沒找到k
KEIL、uVision和MDK區別和聯絡
--------------------------------------------- -- 時間:2018-11-26 -- 建立人:Ruo_Xiao -- 郵箱:[email protected] ----------------------------------------
Java 的equals()方法 和 == 的區別和聯絡
淺談Java中的equals和== 在初學Java時,可能會經常碰到下面的程式碼: String str1 = new String("hello"); String str2 = new String("hello"); System.out.print
關於union和join區別和聯絡
union和join是需要聯合多張表時常見的關聯詞,具體概念我就不說了,想知道上網查就行,因為我也記不準確。 先說差別:union對兩張表的操作是合併資料條數,等於是縱向的,要求是兩張表字段必須是相同的(Schema of both sidesof union should match.)。也就
Service和IntentService 區別和使用
背景 最近開發遇到一個小小的問題,因為沒怎麼用過IntentService ,所以對其生命週期也不很瞭解,還有工作原理。 intentService 詳解 intentService ——>> StartService 第一次 intent
G++和C++區別和評測注意事項
G++和C++的區別和評測注意事項 下面摘抄自網際網路 G++ 首先更正一個概念,C++是一門計算機程式語言,G++不是語言,是一款編譯器中編譯C++程式的命令而已。 那麼他們之間的區別是什麼? 在提交題目中的語言選項裡,G++和C++都代表編譯的方式。準確地說
BTC和BCH 區別和聯系?
升級問題 fff 手續費 升級 現在 風險 個人電腦 電網 pan 在比特幣剛剛出現的時期,中本聰對區塊的大小限制在1M。這種限制既保障性能較弱的個人電腦能夠參與其中,同時也起到了防止攻擊者讓比特幣網絡超載的風險發生,畢竟那時系統還很脆弱。在1M的限制下,10分鐘一個區塊最
SparkSQL(8):DataSet和DataFrame區別和轉換
1.概念: (1)DataSet和RDD 大資料的框架許多都要把記憶體中的資料往磁盤裡寫,所以DataSet取代rdd和dataframe。因為,現階段底層序列化機制使用的是java的或者Kryo的形式。但是,java序列化出來的資料很大,影響儲存Kryo對於小資料量
網路---Https和Http區別和對稱加密和非對稱加密
Https和Http區別 眾所周知,WEB服務存在http和https兩種通訊方式,http預設採用80作為通訊埠,對於傳輸採用不加密的方式,https預設採用443,對於傳輸的資料進行加密傳輸 目前主流的網站基本上開始預設採用HTTPS作為通訊方式,一切的考慮都基於對安全的要求,那麼如何對