本文目錄一覽:
JS中如何解決for循環中的延遲執行問題
我們先來看一個例子
在JS方法裡面設置一個for循環,輸出每次循環的值,如下圖
我們可以根據閉包的知識來更改一下for循環中的邏輯,利用閉包將i的值傳遞給a
這次在運行程序我們就可以看到輸出內容是0開始輸出了
結果如下圖
JS中如果for循環中有異步方法,就需要用閉包的方式保留當前循環變量值
js延時5秒用find寫法
js延時5秒用find寫法setTimeout(function(){ getSignature() },5000);
在前端開發過程中,如果使用傳統的純js,有時會有延時執行一個方法的需求.
使用js實現幾秒以後倒計時跳轉,這個在某些特殊情況下還是比較實用的。
如何用javascript設置延時執行
二、JavaScript 的計時事件的函數
setTimeout() – 在指定時間後執行代碼
clearTimeout() – 取消 setTimeout()注意:setTimeout() 和 clearTimeout() 都是HTML DOM 的 Window 對象的函數。
三、setTimeout詳解
var t=setTimeout(“javascript 語句”,時間參數)
註:時間參數單位為毫秒
示例:var t=setTimeout(“alert(‘3 seconds!’)”,3000)
如果js語句帶變量,則必須用+號將變量連接起來,如:
var t=setTimeout(”document.getElementById(“+menuid+”).style.display=’none'”,3000)
四、clearTimeout詳解
語法:clearTimeout(setTimeout的變量名)
示例:clearTimeout(t) //其中t為前面設置的setTimeout的變量
使用clearTimeout可以隨時停止計時。
五、應用技巧
建議將setTimeout單獨設置為一個函數。如:
function delayRun(code,time) {
var t=setTimeout(code,time);}這樣,在需要讓某段代碼延時執行的時候,只需在這段代碼前加入這個函數就可以了。如:
onmouseover=delayRun(“setTab(0,0)”,500)
其中setTab是一個自定義的函數。如果以後不想讓setTab延時執行,則去掉語句中的delayRun相關的代碼即可,改為:onmouseover=setTab(0,0) 就可以了。
這種寫法避免每一個需要延時的地方都寫一段setTimeout的代碼,只需要直接調用就可以了,很方便。也節省了代碼的量。
實現javascript的延期執行或者重複執行的兩個函數
以下內容摘錄自《征服AJAX Web2.0開發技術詳解》,今天在圖書管看書覺得講的挺好的,特此摘錄!小部分內容和代碼做了改動!
window對象提供了兩個方法來實現定時器的效果,分別是window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時間後運行;而後者則可以使一段代碼每過指定時間就運行一次。它們的原型如下:
複製代碼
代碼如下:
window.setTimeout(expression,milliseconds);
window.setInterval(expression,milliseconds);
其中,expression可以是用引號括起來的一段代碼,也可以是一個函數名,到了指定的時間,系統便會自動調用該函數,當使用函數名作為調用句柄時,不能帶有任何參數;而使用字符串時,則可以在其中寫入要傳遞的參數。兩個方法的第二個參數是milliseconds,表示延時或者重複執行的毫秒數。下面分別介紹兩種方法。
1.window.setTimeout方法 該方法可以延時執行一個函數,例如:
一秒後會彈出”hello”
[Ctrl+A
全選
注:如需引入外部Js需刷新才能執行]
這段代碼將使得頁面打開5秒鐘後顯示對話框“hello”。其中最後一句也可以寫為:
window.setTimeout(“hello()”,1000);
讀者可以體會它們的差別,在window.setInterval方法中也有這樣的性質。
如果在延時期限到達之前取消延執行,可以使用window.clearTimeout(timeoutId)方法,該方法接收一個id,表示一個定時器。這個id是由setTimeout方法返回的,例如:
[Ctrl+A
全選
注:如需引入外部Js需刷新才能執行]
這樣,如果要取消顯示,只需單擊頁面任何一部分,就執行了window.clearTimeout方法,使得超時操作被取消。
2.window.setInterval方法
該方法使得一個函數每隔固定時間被調用一次,是一個很常用的方法。如果想要取消定時執行,和clearTimeout方法類似,可以調用window.clearInterval方法。clearInterval方法同樣接收一個setInterval方法返回的值作為參數。例如:
複製代碼
代碼如下:
//定義一個反覆執行的調用
var id=window.setInterval(“somefunction”,10000);
//取消定時執行
window.clearInterval(id);
上面的代碼僅用於說明怎樣取消一個定時執行。實際上在很多場合都需要用到setInterval方法,下面將設計一個秒錶,來介紹setInterval函數的用途:該秒錶將包括兩個按鈕和一個用於顯示時間的文本框。當單擊開始按鈕時開始計時,最小單位為0.01秒,此時再次單擊按鈕則停止計時,文本框顯示經過的時間。另外一個按鈕用於將當前時間清零。其實現代碼如下:
New
Document
[Ctrl+A
全選
注:如需引入外部Js需刷新才能執行]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/307375.html