ブックマーク / qiita.com/penguinshunya (1)

  • setTimeout()の0秒は4ミリ秒 - Qiita

    window.setTimeout()がコールバックのネストにより連続的に呼ばれたとき、4ミリ秒の遅延が発生します。 たとえば以下のコードでは、countを1000にするのに4秒以上かかります。 let start = new Date().getTime(); let count = 0; let next = () => { count++; if (count === 1000) { console.log((new Date().getTime() - start) / 1000); } else { window.setTimeout(next, 0); } }; let id = window.setTimeout(next, 0); MDNのページで言及されていました。「4ミリ秒」というのはHTML5で標準化された仕様です。 解決策も書かれており、window.postMes

    setTimeout()の0秒は4ミリ秒 - Qiita
    softstone
    softstone 2019/01/26
    'If nesting level is greater than 5, and timeout is less than 4, then set timeout to 4.'これかな。実行性能を保証するものではなさそうな。/昔はchromeだけやたら速くて(一桁ms)、FirefoxやIEでは20msくらい待たされた気がする。
  • 1