私のサイトでは Modernizr を使用しており、HTML5Shiv と PrintShiv が必要です。Modernizr を使用してこれらの shiv をロードせず、代わりに IE 条件を介してロードすると、パフォーマンス上の利点はありますか? Modernizr を使用する方が明らかにクリーンですが、私はパフォーマンスに重点を置いています。
3 に答える
私は自分自身に興味があったので、いくつかのテストページを設定して確認しました。
サイトにmodernizrのPrintShivを含むHTML5Shivのみが必要な場合は、IE条件付きを使用してhtml5shiv-printshiv.jsのみをロードすると、他のすべてのブラウザー(lt IE 9)のmodernizrを常にロードするよりもパフォーマンスが向上します。したがって、あなたの場合、おそらくmodernizrの使用をやめ、条件付きでshivを使用する必要があります。
shivsを必要とするIEブラウザーの場合、負荷/パフォーマンスは、modernizrを使用する場合とhtml5shivのみを使用する場合で同等です。html5shivのみを使用した場合のパフォーマンスの向上は、最新のIEブラウザー(IE9およびIE10)で見られます。
テストページ:
- html5shiv-printshivのみ:http ://jsbin.com/upozar/1
- カスタムmodernizr: http: //jsbin.com/erodog/1
IE9 /ケーブルを使用したレポートのテスト:
- html5shiv-printshivのみ:http ://www.webpagetest.org/result/130131_PG_11S8/
- カスタムmodernizr:http ://www.webpagetest.org/result/130131_JG_11SE/
完全にロードされたこれらのテストを比較すると、html5shiv-printshiv.jsを使用して1.677秒節約できます。
Modernizrの更新:詳細については、ModernizrのGitHubプロジェクトの発行チケットでドラフトされているパフォーマンスの考慮事項に関するドキュメントをお読みください。
最新バージョンの Modernizr は、必要な機能のみを含めるようにカスタマイズできます。性能が気になる方はこちらがおすすめです。
Modernizr コアは、パフォーマンスの点でそれほど高価ではありません。費用は、それが行うすべてのテストにあります。必要なテストのみを実行するようにカスタマイズすると、ほとんどの負荷を節約できますが、Modernizr コアとその必要な部分は引き続き利用できます。
私はModernizrでHTML5Shivを使用することを好み、条件付きの使用は避けます。このようにして、私はコードをよりクリーンにし、物事を不必要にしたり重複させたりすることを避けます。HTML5SHivは、ModernizrまたはHTML5Shivを直接使用して、9未満のIEでのみロードされるため、パフォーマンスはIEでも同じです。ただし、HTML5Shivは他のブラウザーには必要ないため、パフォーマンスを使用するための条件文としては良い考えかもしれません。