23

HTML5 ではdefer、HTML ページでロードを遅延できるスクリプトの属性が導入されました。deferDOM の前にロードする必要のないスクリプトに使用できます (つまり、準備が整う前に DOM を台無しにしないでください)。

長い間、Web 開発者は、ロードする必要のないすべてのスクリプトを、ページではなく DOM の前に置くようにアドバイスされてきましたが、代わりにタグheadの末尾に置きます。body

deferの使用と長年のアドバイスの違いは何ですか? 前者は後者を代用しますか?

どんな答えでも感謝します。ありがとうございました。

4

1 に答える 1

8

async スクリプトと defer スクリプトはどちらも、パーサーを一時停止せずにすぐにダウンロードを開始し、オプションの onload ハンドラーをサポートして、スクリプトに依存する初期化を実行する一般的なニーズに対処します。

WebKit ブログから、動作はすべてのブラウザーで必ずしも同じではありません。そのため、スクリプトは後でダウンロードされるため、スクリプトがまだ最後にある場合はパフォーマンスが向上します。

2017年を編集: ブラウザーのサポートが大幅に改善されたため、ヘッドで async/defer スクリプトを使用できるようになりました。それらを一番下に置く方がおそらく安全な選択です。新しいブラウザは、頭の中になくても、それらを早期にダウンロードします。

編集 2020: 最近では、非常に古いブラウザーをサポートしていない限り、頭の中で async/defer を使用する必要があります。

于 2012-11-01T18:21:30.237 に答える