IE10 Platform Preview 2

2041 ワード

まずはsetImmediate Apiです.この関数はsettimeoutに似ていますが、少しだけ強くなりました.一般的にsettimeoutの精度は16 ms程度、つまりsettimeout(0)と書いてもサイクルごとに16 msを突破できないので、もちろんsettimeout(0)には一般的に他の用途がありますが、ここでは深く入りません.HTML 5ではsettimeoutの精度が4 msに縮小され,fpsが4倍に向上した.ではsetImmediateの精度はどのくらいですか?簡単な例を書いてテストします.
var
d1 =
new
Date
();
var
i = 0;
var
f =
function
(e){
    
if
(i > 100000) {
        
alert(
new
Date
() - d1);
    
}
else
{
        
i++;
        
document.body.innerHTML = i;
        
msSetImmediate(f);
    
}
};
f();
非同期で0から10万まで順次印刷され、私の2年前の本では16 Sの時間しかかかりませんでした.つまり、この例ではsetImmediateが約0.16 msで実行され、fpsが6000を超えているとは信じられません.続いてIE 10 Test Driverでのクイックソートの例をテストし、setImmediateと16 msのsetTimeoutも40倍以上の差があり、非常に暴力的だった.この関数の実現原理はまだ知られていないが,普及すればブラウザでできることが多くなることが予想される.
IE 10は今回もrequestAnimationFrameへのサポートを追加しており、慣例ではmsRequestAnimationFrameとmsCancelRequestAnimationFrameと書く.万悪のブラウザメーカーのプレフィックスがjsを汚染したと言わざるを得ない.幸いIEの実現は非常に標準的で、mozのように半分しか実現していない.この部分の詳細は、私が前に書いたブラウザのオリジナル関数を使用してアニメーションを最適化する2例ここではを見ることができます.要するに、60 fpsで安定し、最適化されたフレームアニメーション関数を備えているのは、もちろんサポートされているブラウザが多ければ多いほど良いのではないでしょうか.
数年前、ページが最小化されたときにサーバメッセージを引っ張らないようにする必要がありました.ブラウザの高さが0より大きいかどうかを判断して実現したのを覚えています.今、W 3 CはPage Visibility API仕様を制定して、以前Chromeはすでに支持して、今回またIE 10を多くして、この2種類のハイエンドブラウザの下で類似の需要は二度と自分でパクリする必要はありません.このApiはとても簡単で、特に言うことはありませんが、ChromeやIE 10で公式デモを開けて自分で見ればいいです.