明日のためにその1

noscript要素とかIE独自実装を取っ払ってどこまで簡略化して書けるかの脳内実験

これ↓


<link rel="stylesheet" href="http://asamuzak.jp/css/layout.css" />
<noscript>
<link rel="stylesheet" href="http://asamuzak.jp/css/layout_sub.css" />
</noscript>
<script src="http://asamuzak.jp/js/assist.js"></script>
<!--[if ie 9]>
<script src="http://asamuzak.jp/js/textshadow.js"></script>
<![endif]-->
<!--[if lt ie 9]>
<link rel="stylesheet" href="http://asamuzak.jp/css/layout_sub.css" />
<script src="http://asamuzak.jp/js/html5shiv-printshiv.js"></script>
<![endif]-->

と、これ↓


<link rel="stylesheet" href="http://asamuzak.jp/css/layout.css" />
<link rel="stylesheet" href="http://asamuzak.jp/css/layout_sub.css" />
<script src="http://asamuzak.jp/js/assist.js"></script>
<script src="http://asamuzak.jp/js/textshadow.js"></script>
<script src="http://asamuzak.jp/js/html5shiv-printshiv.js"></script>
<script>
(function(_doc) {
    'use strict';
    _doc.addEventListener('DOMContentLoaded', function() {
        var _$, i, l, head = _doc.querySelector('head');
        for(_$ = _doc.querySelectorAll('link'), i = _$.length - 1, l = 0; i >= l; i--) {
            /layout_sub/.test(_$[i].href) && head.removeChild(_$[i]);
        }
        for(_$ = _doc.querySelectorAll('script'), i = _$.length - 1, l = 0; i >= l; i--) {
            (/html5shiv/.test(_$[i].src) || _doc.documentMode !== 9 && /textshadow/.test(_$[i].src)) && head.removeChild(_$[i]);
        }
    }, false);
})(document);
</script>

…は、実質的に等価と考えていいのかな? (実際には、除去するスクリプトはassist.jsの中に突っ込む予定だけど)

余計なリクエストが発生するというデメリットはあるけど、それ以外に何か問題はあるのかな?

追々試してみよう

"明日のためにその1"へのTwitter上でのコメントやRT

3件のツイートがあります。

ツイート 1

ツイート 2

ツイート 3