Modernizr.load() メソッドを使用して、ブラウザー (つまり) がメディア クエリを理解するかどうかをテストし、そうでない場合は、respond.js ライブラリを読み込みます。
ただし、modernizr.load メソッドを介して Respond.js をロードすると、FOUC が発生しますが、インライン スクリプト メソッドでは発生しません。
modernizr.load メソッド:
<script>
Modernizr.load([{
load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
complete: function () {
if (!window.jQuery) {
yepnope('js/libs/jquery.js?v=1.7.2');
}
}
},
{
test: Modernizr.mq('only all'),
nope: 'js/plugins/respond.js?v=v1.1'
}])
</script>
インライン方式:
<!--[if lte IE 8]>
<script src="js/plugins/respond.js?v=v1.1"></script>
<![endif]-->
どうしてこんなことに?非同期メソッドの方が高速であってはなりませんか? または、スクリプトがDOMをブロックし、スクリプトがロードされるまで待機しているため、インラインメソッドの方が優れています...?