計時器非同步:迴圈計時器setinterval()、一次性計時器settimeout()(上面這兩個計時器 視窗切出不會自動暫停)、按照螢幕重新整理頻率執行的計時器(視窗切出 自動暫停)
setinterval()方法的作用是每隔一段時間執行一次方法,清除函式效果的兩個方法是window.clearinterval()(window可以省略)
(1)setinterval()方法常用的語法如下:
setinterval(function,interval);
其中function是將要在間隔時間內執行的函式,interval是間隔的時間,單位是毫秒。
(2)clearinterval()方法的常用語法如下:
timer = setinterval(function,interval);
clearinterval(timer);
var count=0;
var timer=setinterval(function ()
},1000)
;//時間 ms
function loop()
setinterval
(loop,1000)
;setinterval
("loop()",1000)
; //給計時器裡面傳遞引數
var a=10;
setinterval(function (args)
,1000,a)
;for (var i = 0; i < 10; i++)
, 1000, i)
;}
settimeout()和cleartimeout()
可以看到timeoutalert()方法每隔1000毫秒呼叫自身,在控制台列印出當前timeout的值,timeout第一次使用
settimeout()後為1,每次增加1,cleartimeout()通過這個數字作為入參清除當前的settimeout()。
//一次性計時器
settimeout(function ()
,1000)
; function time()
settimeout
(time,1000)
;settimeout
("time()",1000)
; //把一次性計時器 該迴圈計時器
var timer=null;
var c=0;
loop()
; function loop()
//遞迴
timer=settimeout
(loop,1000);}
settimeout(function (args)
,1000,100)
;
//以上兩個計時器 this 指向window
// window.setinterval(function (),1000);
//要想保證計時器上下文 this指標一致
要想保證計時器上下文 this指標一致
var page =
,1000)
; var that = this;//不能用call
settimeout(function ()
, 1000);}
}
;
requestanimationframe 根據電腦的重新整理頻率走的 16ms 60hz,window.requestanimationframe() 類似一次性計時器
//根據不同瀏覽器做相容處理
var requestframe = window.requestanimationframe || window.webkitrequestanimationframe ||
window.mozrequestanimationframe || window.msrequestanimationframe ||
function (time)
var cancelframe = window.cancelanimationframe || window.webkitcancelanimationframe ||
window.mozcancelanimationframe || window.mscancelanimationframe ||
function (time)
; var count = 1;
var timer = null;
loop()
;function loop()
//呼叫計時器
timer = requestframe
(loop)
;}
JS全棧自學參考
近幾年,前端技術飛速發展,隨著html5 css3和es6等前端基礎規範的相繼出台並獲得多數瀏覽器的支援,前端的能力進一步被釋放。現代的前端技術不斷和後端技術,甚至是桌面客戶端技術相結合,可以說,基於js技術棧,已經可以滿足大多數系統的全棧開發了。雖然在某些場景下,有更好的解決方案,但是對於絕大多數...
Web全棧課程4 資料互動 http
http所有的資料請求對於伺服器的處理來說,都是表單提交 除了websocket 表單ajax jsonp websocket 1 3個版本 http1.0 http1.1 http2.0 2 http和https http 容易被攻擊被竊聽 https http secrity 安全,https需...
javascript全棧開發實踐 web 2
我們目前僅僅測試實現了鉛筆的功能。接下來我們繼續增加乙個新的功能 螢光筆。螢光筆通常是帶有一定顏色,並且具有半透明特性,可以把下面的字跡顯露出來。而為了在鉛筆和螢光筆之間進行切換,我們就需要增加兩個按鈕,來實現這個切換功能。如下 background lightgrey pencil onclick...