4

機能の検出は、一般的にブラウザのスニッフィングよりも優先されます。特定のブラウザが使用している機能を「サポート」しているが、JavaScriptの実行時間が遅すぎる場合はどうすればよいですか?

いくつかの複雑な視覚化にd3ライブラリを使用しています。視覚化はchrome/firefoxで非常にスムーズで、IE9で受け入れられ、IE8では低速ですが機能します。IE8ユーザーにアップグレードを通知するバナーを表示し、IE9ユーザーにChromeまたはFFの方が高速になることを通知するバナーを表示したいと思います。ユーザーエージェントのスニッフィングを介してこれを行うのは悪いことですか?

4

1 に答える 1

2

ブラウザーが実行したいことと同様の複雑なものを計算するのにかかる時間を測定し、そのしきい値時間を設定してみませんか?

function detectBrowserSpeed(){

    var i,
        slowThreshold = 100; // milliseconds
        startMillis = + new Date(); //The + is to 'force' casting to an integer representing EPOCH milliseconds. If + is ommited, then I get an instance of Date.

    //Do something complex here:
    for (i=0;i<100000;i+=0.1){

    }

    var elapsed = (+ new Date()) - startMillis;
    if(elapsed > slowThreshold){
        return 'slow';
    }else{
        return 'fast'; 
    }

}
于 2013-03-05T22:01:16.377 に答える