ASP.NETで複数のJavaScriptファイルのダウンロードをまとめて、ページロードを高速化する
Fast ASP.NET web page loading by downloading multiple javascripts after visible content and in batch
http://www.codeproject.com/KB/aspnet/fastload.aspx
より。
多数のJavaScriptファイルを使用した際にページロードに時間がかかるように感じられるのは、
- コンテンツの途中に<script src="...">が存在すると、その時点でレンダリングがストップし、スクリプトの読み込みと実行がおこなわれるから
- 複数回のスクリプトファイルのダウンロードが発生すると、読み込み時のネットワークレイテンシが大きく影響してくる
そこで、ASP.NETのレスポンスフィルターを作成し、
- <script>タグをコンテンツの後方に移動する
- グループ化する最初の<script>>のsrc属性を、カスタムHttpハンドラのurlに置換する
- その他の<script>のsrc属性を、空にする
- グループ化の単位はxmlで定義する
- カスタムHttpハンドラは対象のjsにアクセスして内容を取得し、結合したのちにレスポンスを返す
詳細とソースコードは、上記のサイトを参照
これを応用すれば、CSSファイルをまとめることもできるかも。