5

mdndeferで属性について読んだ後

このブール属性は、ドキュメントが解析された後にスクリプトが実行されることをブラウザに示すために設定されます。

良い感じ。

だから私はそれに対して テスト$(function () { }); し ました$(window).load(...)

<script>
$(function ()
{
  alert('1')
});
$(window).load(function ()
{
  alert('2')
});
</script>

<script defer="defer">
  alert('4');
</script>

このコードは常に出力します4,1,2

わかりましたので、ドキュメントが解析された時間を認識できます。

document.ready (解析時間が完了する) のの段階が必要になるシナリオは何ですか?

4

2 に答える 2

4

MDNから

defer属性は、src属性を持たないスクリプトでは使用しないでください。

実際の使用法では、ページの上部にスクリプトを配置し、ページ全体が完全に解析された後にブラウザーにスクリプトをロードさせて、クライアント側のパフォーマンスを向上させることができます。

YSlowから

DEFER属性は、スクリプトにdocument.writeが含まれていないことを示し、ブラウザーがレンダリングを続行できる手がかりになります。

于 2012-10-09T15:22:13.850 に答える
1

W3 HTML 仕様をチェックしてください:

async および defer 属性は、スクリプトの実行方法を示すブール属性です。src 属性が存在しない場合は、defer および async 属性を指定してはなりません。

したがって、この属性は外部スクリプトに対してのみ有効です。

于 2012-10-09T15:32:53.067 に答える