2009-07-18 30 views
1

私が作業しているWebプロジェクトでは大きなリリースになります.JavaScript/CSSのパフォーマンスについて、より多くのことを考え始めています。およびバージョン管理。これまでいくつかの高レベルのアイデアを持っています:ASP.NETでのリソース(JS、CSS)の圧縮、縮小、バージョン管理

  1. 私のためにこれを行うには、httpハンドラを作成(またはカスタマイズ)してください。これは明らかに発生するオンザフライIOを正当化するためにキャッシュを処理する必要があります。
  2. これらの手順を、展開用にのみ実行されるカスタムmsbuildスクリプトに追加します。

また、私が配備しているサーバーごとに自動的に設定ファイルを生成することも考えています。これは2番目の考えに適しています。私が最初のアイデアで目にする主な利点は、バージョン管理をダイナミックに処理できることです(少なくとも、下のリンクのうち、実際にはうまくいくと私は確信しています)。

とにかく、これらの問題のいずれかが既に解決されているかどうか不思議です。私はどんなフィードバックも大好きです。ありがとう!ここで

は、私がこれまで見てきたいくつかのリソースです:1のためにまた

http://madskristensen.net/post/Combine-multiple-stylesheets-at-runtime.aspx http://madskristensen.net/post/Remove-whitespace-from-stylesheets-and-JavaScript-files.aspx http://www.west-wind.com/WebLog/posts/413878.aspx http://svn.offwhite.net/trac/SmallSharpTools.Packer/wiki

答えて

3

これは、継続的な統合ビルドプロセスの一環として行います。

すべてのJSを前回チェックインバージョンと比較すると、変更が加えられたそれぞれについて、そのJSファイルのYUIコンプレッサーを呼び出し、出力に現在のリビジョン番号を付けます。そのファイルをリポジトリに追加し、設定ファイルをそのjsファイルの最新リビジョン番号に変更します。次に、jsファイルをインポートするカスタムコントロールを作成します。このコントロールは、開発マシン上で実行されているときは圧縮されていないjsを、展開されたセットアップで実行されたときはconfigファイルのリビジョン番号を持つ圧縮ファイルを使用します。

+0

非常に巧妙なアイデア。 – YOMorales

0

)、Microsoftはembedding resource files into DLLのためのサポートが組み込まれています。これは、プロジェクトが変更され、再コンパイルされたときに常に更新されます。

問題は、キャッシングとファイル名を制御できないことです。デバッグするときに、何かが "webresource.axd"と何か呼ばれるときにデバッグするものを選ぶのは難しいです。それは地獄だった。

他の人たちのやり方もよく読んでみましょう。

0

個人的には、ビルドプロセスの一環として、各リクエストでこれを動的に実行するパフォーマンスのコストを避けるために、個人的にはビルドプロセスの一部として行っています。私はあなたが適切なキャッシュを実装することでヒットを減らすことができると思うが、なぜ悩ましい... IISはあなたのためにそれを(IISの上で実行されていない限り、私は推測する)処理することができます。

Steven Soudersが話していることは、一般的な推奨として、ブラウザのレンダリングを高速化したい場合にも適しています。まだお持ちでない場合は、thisをご覧ください。

0

私のチームは最近、埋め込みリソースとしてスクリプトを保管することから離れました。私たちは結果に非常に満足しています。はい、ハンドラを使用してそれらを結合したり縮小したりすることはできますが、特に別のドメインからそれらをホストする場合は、少し面倒です。

ここまでは、すべての制御スクリプトファイルを分離したままにしておき、構築プロセス中にjs-builderのようなツールを使用して結合して縮小しました。実際には、ツールから2つのファイルを出力します.1つは単純にデバッグ用に結合され、もう1つは実稼働用に結合され、縮小されたファイルです。

+0

ご意見ありがとうございます。 さらに数時間の研究の後、これが私が向けているものです。ボーナスとして、私はJSLint(エラーのみ)をビルドプロセスに統合するかもしれないと思います。 好奇心が強い - 設定を同じ方法で処理しますか?私はwdproj 'web config replacements'(シンプル)と、ビルドプロセス内でそれを行うためのツールを見つける(より設定可能)との間にあります。 – JoeB

関連する問題