<head>
<!-- data-main attribute tells require.js to load
scripts/main.js after require.js loads. -->
<script data-main="scripts/main" src="scripts/require.js"></script>
</head>
( 1 ) ヘッドにロードすることをお勧めします。
キャッシュを停止するため、html ( 2 )にインライン化する価値はありません。言うまでもなく、どこにでもインライン化する必要があり、醜いだけです。
有効な代替手段 ( 3 ) (ただし個人的には価値がない) は、<script>
JavaScript を使用してタグを作成し、それを頭に挿入することです。これが本体の下部で行われる場合、うまくいけば、非同期ローダーが開始される前に html/css が完全に読み込まれるようになるはずです。
おまけとして、require.js を使用すると、メイン スクリプトへのポインタを指定でき、require が読み込まれると、それが読み込まれます。その後、ほとんどの非同期ファイルの読み込みをメイン スクリプトで実行し、ページで必要なものに関して、各ファイルの明確に定義された一連の要件を設定できます。
JavaScript を非同期的にロードする理由には、
- 初期 HTML/CSS の高速ロード。
- ヘッダーは「クリーン」なままです
- あなたのjavascriptとhtmlは明確に分離されています。
- 特徴検出に基づいてファイルを動的にロードできます。
- ファイル間の依存関係を明確に定義できます。
- ライブラリ全体を (jQuery のように) ロードする代わりに、モジュール方式 (YUI のように) でライブラリをロードできます。
そして、リストは続きます。上記のような行を既定/共有ビューまたはマスター ページに含めることは、非常にクリーンで整頓されています。
機能検出に基づいて JavaScript ファイルを動的にロードする方法を拡張します。つまり、javascript ファイルをロードする必要がある DOM を参照できるということです。たとえば<ul class="image-slider">
、ページに がある場合、標準の css セレクターを介してそれを検出し、image-slider.js
ファイルをロードして JavaScript で目立たないように拡張することができます。
これは、画像スライダーを使用してすべてのページに手動で含める必要がないことを意味します。デフォルトですべてのページに含める必要はなく、1 つの情報 (クラス名) を使用して、視覚的なスタイルと機能の両方を適用できます。