質問: ### 前提・実現したいこと `Knockout.js`を使用して、サイトを作っています。 一瞬だけ文字を表示する機能を作成したいのですが、 EdgeやFirefoxで表示されないときがあります。 Chromeでは問題なく表示できます。 ### 該当のソースコード ``` hoge ``` ``` this.visible(true); // 表示!! setTimeout(function () { _this.visible(false); // 非表示!! }, 1); ``` ### 質問 1. ブラウザやバージョンによって、 `display:none`が適用されなくなる(`hoge`が表示される)までの時間に差があるのでしょうか? ※表示しようとしたときに、時間が来て「非表示」の処理が走っているのではないかと予想しています。 2. EdgeやFirefoxでも、`hoge`を確実に表示することは可能でしょうか? ※ただし、表示する時間は`0.001秒`としたい。 上記ご教示いただけると助かります。 よろしくお願いいたします。
回答: [1について] タイマーの最小解像度の問題で、多少の差はでるようです。 JavaScriptの1msは4ms(Qiita) また、当然ですが、ブラウザやOSが過剰に処理を抱えている場合はsetTimeout の処理は後回しにされるかもしれません。 そもそも、最小の時間単位だとモニタのリフレッシュレートの関係で描画される間もなく......ということはよくあると思います。 そのほか、あなたの体調次第では、視認できないレベルの短さに見えます。 [2について] おそらく1/1000秒で確実に描画する方法はないと思います。というかそんなの描画されていても視認すできないのでは......?