私の WebApplication では、多くの ASPX ページにページの先頭に多数の javaScript が含まれています。これにより、ページの読み込み時間が長くなります (40 秒分)。javascript @ begin of page がページのレンダリングをブロックし、読み込み時間が長くなることはわかっています。ページの読み込み時間を短縮するために、実際の機能を失うことなく Javascript をページの下部に移動するにはどうすればよいですか。
2 に答える
ClientScriptManager.RegisterClientScriptBlock
(そして私は思うClientScriptManager.RegisterClientScriptInclude
)スクリプトブロックを要素の上部に向かってform
レンダリングClientScriptManager.RegisterStartUpScript
しますが、要素の下部に向かってレンダリングしますform
。
問題RegisterStartUpScript
は、スクリプトが追加された順序で出力されないことです。これは非常にイライラします。あなたはいくつかのことを試すことができます:
- スクリプト名が、レンダリングしたい順序でアルファベット順に並べられていることを確認してください (ばかげています、私は知っています)。
ClientScriptManager
あまり馬鹿げていないものを自分で実装してみてください。ClientScriptManager
スクリプトを表示したい場所に正確にリテラル ブロックにスクリプトを出力することは絶対に避けてください。- クライアント スクリプトをバンドルし、バンドルだけを含めます。
#3 と #4 の問題は、コントロールがClientScriptManager
で依存関係が追加されているかどうかを確認し、追加されていない場合は追加され、スクリプトが 2 回含まれることになります。
JavaScript ファイルはキャッシュする必要があります。これは、読み込み時間を短縮するための最初のステップです。JSファイルを一番下に移動することは役に立ちますが、それが唯一のアクションである場合はそれほどではありません. また、JS ファイルに defer 属性を使用する可能性を調べる必要があります。これは、ページの解析が終了したときにスクリプトが実行されることを意味します。