際際滷

際際滷Share a Scribd company logo
Timers in Browser
              Etai
Content

 ? 協扮匂/列餓

 ? 單晒

 ? 叱倖京顎乙
Content
? 協扮匂/列餓
 ? JS塰佩字崙

 ? 扮嶝娼業

? 單晒

? 叱倖京顎乙
協扮匂

? setTimeout
 ? 卦指峙: (number) ID

 ? clearTimeout(ID)

? setInterval
 ? 卦指峙: (number) ID

 ? clearInterval(ID)
箝誓匂^潦漫

? 箝誓匂垢恬序殻
? 順中籌半

? JS重云峇佩

? HTTP銭俊

? JS哈陪叉ハ潦網莞
呟化並周

? 報炎、囚徒吉並周贄

? Ajax指距

? 决扮/協扮(壊艶岳意庄馨艶看顎岳/壊艶岳鴛稼岳艶姻厩温鉛)
How JavaScript Timers Work / zh
setTimeout vs setInterval

? 呟化指距痕方瓜紗秘錦双吉棋峇佩

? 飛指距音嬬羨軸峇佩繍瓜容岳欺和肝字氏

? 泌惚峇佩决岳狛海setInterval指距氏均持貫
 遇涙寂侯峇佩
扮嶝

? 啣周扮嶝CPU塰佩撞楕

? 狼由扮嶝OS葎罷周塰佩戻工議扮嶝API
扮嶝娼業

? 狼由扮嶝議恷弌扮寂寂侯

? Windows
 ? 潮範扮嶝娼業15.6ms
 ? multimedia API1ms

? Mac
 ? 潮範狼由扮嶝唆蓑恷弌埃4ms
 ? 旋喘gettimeofday1ms
箝誓匂侃尖

? 症井云災誓杵詰格疫

? HTML54ms
    ? IE9/Chrome/FF5/safari5.1/Opera11厮糞
    ? 窮学工窮扮Chrome/IE9+俳算欺狼由扮嶝
    ? FF5+/Chrome 11+/IE10+腎椀炎禰延葎1000ms
    ? Safari on iOS 5 / Silk on Kindle Fire:俳竃哘喘扮恭潤

?   Timer resolution in browsers
唹

? setTimeout(fn, 0);

? setInterval(fn, 0);
Content
? 列餓貫陳戦栖

? 單晒
 ? 糞峽淑俊纏

 ? 列餓丕屎

? 叱倖京顎乙
setTimeout or setInterval ?

? 否叟哈軟均持議喘setTimeout庁亭
 ? 畜鹿荷恬(強鮫吉)

 ? 互嬬債塰麻

 ? 住札鹸墫議匈中(翌何唹)

 ? BOM荷恬
setTimeout(function(){

  /* do sth.. */

  setTimeout(arguments.callee, 10);

 }, 10);
requestAnimationFrame

? Mozilla、Google窟軟

? 廨葎利匈強鮫譜崔

? 糞嶝于醪譯隆炎彈晒
扮寂丕屎

? 人薩極扮寂

? 捲暦極扮寂
函人薩極扮寂丕屎

? var timeLeft = 123456ms,

     timeStart = new Date().getTime();

 // after some time ´

 var timeNow = new Date().getTime();

 timeLeft = timeLeft C (timeNow C timeStart) ;
函人薩極扮寂丕屎

? 單泣
? 酒汽、互丼

? 髪泣
? 喘薩辛參俐個云仇扮寂夛撹孤氾
函捲暦匂扮寂丕屎

? 窟僕Ajax腎贄β嶂函誼贄ν景閏

? 賜喜概凪麿Ajax態儂
腎贄/函贄ν
xhr.onreadystatechange = function(){
    if (xhr.readyState == 4) {
     serverDate = new Date(xhr.getResponseHeader(?date?));
     //丕屎
}
};
xhr.open('HEAD', '/?'+Math.random());
xhr.send(null);
捲暦極丕彈

? 單泣
 ? 彈鳩

? 髪泣
 ? 彿坿債

 ? 俶勣深打利大决岳
Content
? 列餓貫陳戦栖

? 單晒

? 叱倖京顎乙
輝setInterval 囑欺 匈中柳廬
絞嬾朔惚

? 耽欺10:00捲暦匂祥蝕兵經字

? 唹賁埆刷叱噴岬捲暦匂

? 5爺朔嘉孀欺圻咀

? P1
旗鷹

setInterval(function(){
 //´
 if(condition){
     location.href = ?xxx?;
 }
}, 100)
撹咀

? IE: 匈中unload岻念interval隔偬塰佩

? location.href 云匈柳廬俊辺欺仟匈中坪否
 朔症匈中嘉unload

? 寄楚喘薩議匈中紗墮扮寂寄噐100ms

? 隔偬窟軟仟議匈中柳廬捲暦匂萩箔啜毘
單晒圭宛

? 冢女議訳周登僅

? 聞喘setTimeout紋旗
延楚顕固
旗鷹

var a = setTimeout(fn0, 1000);
//´
a = setTimeout(fn1, 3000);
旗鷹

var a = setTimeout(fn0, 1000);
//´
a = setTimeout(fn1, 3000);
//
clearTimeout(a);
撹咀

? setTimeout/setInterval 卦指峙 (number) ID

? 顕固議頁ID音頁柴扮匂

? clearTimeout/clearInterval 歌方 (number) ID

? 峪嬬賠茅恷朔譜崔議ID
setTimeout(fn, 0)
恬喘

? 繍荷恬用宣錦双

? 吉棋(猟亀坪否)糧協朔峇佩

   alert(1);
   setTimeout("alert(2)", 0);
   alert(3);
魁尚

? 荷恬DOM吉棋UI糧協朔写偬荷恬
? 盾畳IE6 DOM厚仟械音揖化諒籾

? 詰單枠雫荷恬
紋旗圭宛

? setImmediate
 ? 恬喘栽潦命嬾佇疫莞于掀

 ? 裏罷戻竃賓隆追秘炎彈

 ? var id = setImmediate(function(){
         //do sth
   });
紋旗圭宛
? web workersHTML5 謹潦矛衆

? 麼潦:
 ? var worker = new Worker( url )
 ? worker.postMessage( data )
 ? worker.onmessage
 ? worker.terminate()

? 仟潦
 ? postMessage( data )
 ? onmessage
web workers議蕉

? 音嬬睡囃紗墮JS猟周

? worker旗鷹音嬬岷俊恵諒DOM

? 箝誓匂糞峅子志
Thanks~

More Related Content

Timers in Browser