[45] setTimeout()
と setInterval()
は、一定時間後、あるいは一定時間ごとに指定した処理を実行するものです。
[46] WindowOrWorkerGlobalScope
インターフェイスは、メソッド
setTimeout
, setInterval
,
clearTimeout
, clearInterval
を持ちます >>33。 WindowOrWorkerGlobalScope
は
Window
>>33 と WorkerGlobalScope
>>47
が実装しています。
[48] setTimeout
と setInterval
は、
いずれもタイマー初期化手順を実行するものです >>33。
[87] 与えられたコードは、 >>66、>>72、>>32 を待った後、実行されます。
[66] 基本となる待ち時間は、第2引数で指定された値です。ただしその値が4より小さく、 タイマー入れ子水準 (なければ0) が5より大きいなら、4とします。 >>33
[75] タイマー入れ子水準 >>33 は、 入れ子回数の管理のための値です。タイマー初期化手順により追加されたタスクに存在します。 追加されたタスクのタイマー入れ子水準は、元のタスクのタイマー入れ子水準よりも1大きな値です >>33。
[70] Window
では、
関連付けられている文書が完全に活性な状態のミリ秒数として解釈されます >>33。
[71] WorkerGlobalScope
では、ワーカーが suspend
されていない状態のミリ秒数として解釈されます >>33。
[72] 同じ文脈オブジェクトについてタイマー初期化手順が何度も呼ばれている場合、 呼び出しのタイミングがより早く、待ち時間 (>>66) が等しいか小さいものが実行完了 (タスクが追加完了) されるまで、待つことになっています >>33。
[32] 利用者エージェントは更に加えて任意の時間待っても構いません >>33。 電力等利用できる資源の制約や性能上の限界その他の要因により処理を遅らせることができます。
[130] Internet Explorer のタイマーの動作の設定が Windows コントロールパネルの省電力設定内にあります、 バッテリー駆動中か電源接続中かでも動作を変更できます。
[55] WindowOrWorkerGlobalScope
オブジェクト (Window
や
WorkerGlobalScope
) は活性タイマー群のリストを持ちます
>>33。活性タイマーのリストには、 setTimeout
や
setInterval
で指定されたタイマーが含まれます。
[60] 活性タイマーのリスト内の各項目は、非負整数により識別されます >>33。 この非負整数はハンドルと呼ばれています。
[88] ハンドルは、 WindowOrWorkerGlobalScope
オブジェクトの生存期間内において固有でなければなりません >>33。
[89] ハンドルはタイマー初期化手順の実行時 (setInterval
の場合は、初回のみ)
に利用者エージェント定義の方法で決定されます >>33。
タイマー初期化手順はこのハンドルを使って活性タイマーのリストに新しい項目を追加し、
そのハンドルを返します >>33。
[4] このリストは、unloading document cleanup steps によって空にされることがあります。
[123] 活性タイマーのリスト内のタイマーが次にいつ実行されるかは、 アイドル期間の締切の決定に影響する可能性があります。
[74] WindowOrWorkerGlobalScope
インターフェイスの
setTimeout
メソッドと
setInterval
メソッドは、次のようにしなければなりません
>>33。
[59] タイマー初期化手順は、 文脈、取り扱い器、タイムアウト、引数群、 繰り返し、以前のハンドルについて、次のようにします >>33。
[77] ハンドル、文脈、取り扱い器、 引数群、繰り返しフラグ、 呼び出し元realm、呼び出し先realm、 入れ子水準に関するタイマータスクは、次のようなものです >>33。
[113] 文脈においてタイムアウト後にタスクを実行するとは、
文脈の実行待ちタイマー群の末尾に新しい組 (タスク, タイムアウト)
を追加して、起点を現在時刻として、
並列に、次のすべての条件が満たされるまで待ちます >>33。
[120] 条件が満たされたら、組 (タスク, タイムアウト) を文脈の実行待ちタイマー群から削除し、 タスクをタスクキューに追加します >>33。
[53] clearTimeout
と clearInterval
は、いずれも、活性タイマーのリストから引数で指定された数により識別される項目があれば、
これを消去します。該当するものがなければ、何もしません。 >>33
[91] WindowOrWorkerGlobal
インターフェイスの
clearTimeout
メソッドと
clearInterval
メソッドは、次のようにしなければりません
>>33。
[2]
IRC logs: freenode / #whatwg / 20070409 (2007-04-12 00:04:42 +09:00
版) http://krijnhoetmer.nl/irc-logs/whatwg/20070409#l-233
(名無しさん 2007-04-11 15:37:28 +00:00)
[6]
Re: Proposal: High resolution (and otherwise improved) timer API (Maciej Stachowiak 著, 2008-10-04 06:21:35 +09:00
版) http://lists.w3.org/Archives/Public/public-webapps/2008OctDec/0031.html
I cannot state with certainty that nothing lower than 10ms is safe. Chrome shipped with a 1ms delay and that was found to create problems on a number of sites, including nytimes. They are planning to try 4ms next. We would consider using a lower limit in the official webkit.org version of WebKit, not not as low as 1ms.
[9] IRC logs: freenode / #whatwg / 20090504 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20090504#l-24
[10] [webkit-dev] setTimeout as browser speed throttle ( 版) http://lists.macosforge.org/pipermail/webkit-dev/2008-September/005093.html
[12] Web Applications 1.0 r5535 Allow timers to be delayed when power usage is an issue.Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10633 ( ( 版)) http://html5.org/tools/web-apps-tracker?from=5534&to=5535
[13] Bug 10633 – Minimums for timer granularity should be left to the user agent - different form factors have different power requirements ( ( 版)) http://www.w3.org/Bugs/Public/show_bug.cgi?id=10633
[14] [whatwg] Timeouts and monotonic vs clock time ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-January/029734.html
[15] [whatwg] setTimeout clamps ( 版) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-January/029886.html
[16] Web Applications 1.0 r5879 Define 'this' for setTimeout functions ( ( 版)) http://html5.org/tools/web-apps-tracker?from=5878&to=5879
[17] Web Applications 1.0 r6492 Explain ordering of setTimeout() calls better ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6491&to=6492
[18] Web Applications 1.0 r6899 Make setTimeout() not be well-ordered across multiple browsing contexts, so as to allow user agents to e.g. throttle setTimeout()s in background tabs. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6898&to=6899
[19] Web Applications 1.0 r6949 Turns out clearTimeout() and clearInterval() are synonyms! Who knew? Oh what a tangled Web we weave.Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=14907 ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6948&to=6949
[20] IRC logs: freenode / #whatwg / 20120626 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120626#l-1008
[21] Window Object 1.0 ( ( 版)) http://www.w3.org/TR/Window/#timers
[22] Bug 15007 – Add an API to queue a task ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=15007
[23] Web Applications 1.0 r7737 Try to more closely match reality. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7736&to=7737
[24] Web Applications 1.0 r8095 Refactor the timer code to match current practice in WebKit, Gecko, and Blink (the ones whose source I could examine) ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8094&to=8095
[25] Bug 376643 – setInterval fires repeatedly with incorrectly small delays if machine is suspend/resumed, hibernate/resumed or process is SIGSTOP/SIGCONT (2007-06-23 10:13:26 +09:00
版) https://bugzilla.mozilla.org/show_bug.cgi?id=376643
[26] HTML5 IRC logs: freenode / #whatwg / 20070622 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20070622#l-608 (名無しさん 2007-06-23 01:21:49 +00:00)
[27] Web Applications 1.0 r6362 Make setInterval() clamp at 4ms as well. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6361&to=6362
[34] Efficient Script Yielding ( 版) http://w3c-test.org/webperf/specs/setImmediate/
[1] Scope of setTimeout Method http://www2u.biglobe.ne.jp/~oz-07ams/prog/js-notes/setTimeout.html
[7] for 文を setTimeout に変換する - IT戦記 ( 版) http://d.hatena.ne.jp/amachang/20071108/1194501306
[8] JSDeferred を高速化する (試し中) - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech ( 版) http://subtech.g.hatena.ne.jp/cho45/20090125/1232831437
[28] zarame.com/zide/ 日記(2005-11-24) http://zarame.com/zide/diary/20051124.html#p01 (名無しさん 2005-12-07 11:45:55 +00:00)
[29] ぷろじぇくと、みすじら。 http://www.fastwave.gr.jp/diarysrv/misuzilla/200511c.html#20051126-4 (名無しさん 2005-12-07 11:46:42 +00:00)
[30] zarame.com/zide/ 日記(2005-11-28) http://zarame.com/zide/diary/20051128.html#p01 (名無しさん 2005-12-07 11:46:56 +00:00)
[35] setIntervalとsetTimeoutを調べた結果余分なことになった - 三等兵 ( ( 版)) http://d.hatena.ne.jp/sandai/20100513/p1
[36] window.setTimeout - Web API reference | MDN ( ( 版)) https://developer.mozilla.org/en/docs/Web/API/window.setTimeout
[37] Issue 792 - chromium - TRACKING: Chrome does not implement the Webkit 10ms setTimeout clamp. - An open-source project to help move the web forward. - Google Project Hosting ( ( 版)) https://code.google.com/p/chromium/issues/detail?id=792
[38] David Baron's weblog: setTimeout with a shorter delay ( ( 版)) http://dbaron.org/log/20100309-faster-timeouts
[39] 123273 – setTimeout(something, 0) causes 100% CPU constant ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=123273
[40] 686201 – implementation: setImmediate API ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=686201
[41] 839816 – Make next-tick mechanisms like postMessage faster ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=839816
[42] [whatwg] Proposal: requestBackgroundProcessing() ( ( 版)) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2014-February/042075.html
[43] Web Applications 1.0 r8535 Move a setTimeout() requirement from prose to IDL. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8534&to=8535
[44] Web Applications 1.0 r8508 Make clearTimeout()/clearInterval() (with no arguments) into no-ops; change the <table> role mapping so that tables aren't interactive. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8507&to=8508
[3] Web Applications 1.0 r8880 Fix callback logic to reference Web IDL and use the right conventions. ( 版) https://html5.org/r/8880
[5] Fixes #179: Add note about clearing timers · whatwg/html@4b3e06e ( 版) https://github.com/whatwg/html/commit/4b3e06eaa750f129f25999c742dfc782daa085c9
[11] Update ECMAScript and IDL integration · whatwg/html@550c57f ( 版) https://github.com/whatwg/html/commit/550c57f186dd73784a8e4660440db2f642e37c0e
[61] Rewrite script execution on top of ES · whatwg/html@4891d18 ( 版) https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d
[64] Add <script type="module"> and module resolution/fetching/evaluation · whatwg/html@cd1a9fb ( 版) https://github.com/whatwg/html/commit/cd1a9fb1e83f7d0bc30be8b34ecdaf444a0b19a4
[67] Editorial: put properties shared across globals on mixin · whatwg/html@cdd48e1 ( 版) https://github.com/whatwg/html/commit/cdd48e1f570c817402bf62108847c4a9f4b00b1e
[68] Wire up HostEnsureCanCompileStrings to CSP · whatwg/html@374b54d ( 版) https://github.com/whatwg/html/commit/374b54d3fce7c9c72b940d3e97f8e8f2845cde9b
[121] Purpose of timer nesting level for repeating timers is unclear · Issue #239 · whatwg/html ( ()) https://github.com/whatwg/html/issues/239
[122] Existing Intervention to add--setTimeout/setInterval are aligned/clamped to 1 second in many browsers · Issue #5 · WICG/interventions () https://github.com/WICG/interventions/issues/5
[124] Background Tabs in Chrome 57 | Web | Google Developers () https://developers.google.com/web/updates/2017/03/background_tabs
[125] Solve mobile performance (domenic著, ) https://github.com/whatwg/html/commit/d5f415efc7216aa5f527f4d94262aef2fffed8f6
[126] Revert "Solve mobile performance" (domenic著, ) https://github.com/whatwg/html/commit/3716990e05b51850ef7d3c874142b83fe9dd0aa6
[127] Clarify what should actually happen to negative timeouts (zcorpan著, ) https://github.com/whatwg/html/commit/f35e8b70886b5d9594a3d7869936470ea9493c43
[131] Editorial: move base URL from "module script" to "script" (domenic著, ) https://github.com/whatwg/html/commit/5458513792ab00d58e6c91ba48faaa611d034a2e
[132] Make integrity="" work on module scripts (domenic著, ) https://github.com/whatwg/html/commit/9275d955dcd604e959cfcc672e0c234b1b8c00db
[133] Fix import() inside setTimeout()/setInterval() strings (domenic著, ) https://github.com/whatwg/html/commit/12cdfefad607fc824e6ea64a4b967fc24043f684
[138] setTimeout() base URL/script fetch options behavior seems wrong · Issue #3116 · whatwg/html () https://github.com/whatwg/html/issues/3116
[139] Fix import() inside setTimeout()/setInterval() strings by domenic · Pull Request #3117 · whatwg/html () https://github.com/whatwg/html/pull/3117
[140] Chrome’s Headless mode gets an upgrade: introducing `--headless=new` - Chrome Developers (, ) https://developer.chrome.com/articles/new-headless/#-virtual-time-budget