7

そのページに固有の50行以上のJavaScriptを含むASP.netページがいくつかあります。CruiseControlビルドプロセス中にそのJavaScriptを縮小したいと思います。

すでにYUICompressorを使用して、完全なjavascriptファイルとcssファイルを圧縮しています。しかし、インラインJavaScriptの実行方法を理解することはできません。

asp.netページをスピンしてjavascriptを縮小するMSBuildタスクはありますか?

4

5 に答える 5

4

これを処理するために呼び出される興味深いブログとNuGetパッケージがありますundleMinifyInlineJsCss

http://weblogs.asp.net/imranbaloch/archive/2012/07/25/bundling-and-minifying-inline-css-and-js.aspx

于 2012-07-30T08:27:48.427 に答える
2

javascriptをメソッドに抽出し、それらを.jsファイルに移動します。代わりに、ページから関連するパラメーターを使用して関数を呼び出します。複雑な手順ではなく、保守がはるかに簡単です(コードが少ない)。また、クライアント側のコンテンツキャッシングの恩恵を受けることもできます。


また:それが役立つかどうかはわかりませんが、Googleのクロージャーは本当に良さそうです。

http://code.google.com/closure/

圧縮オプション:http ://code.google.com/closure/compiler/docs/api-tutorial3.html

Java実行可能ファイルまたはWebサービスとして利用できます。

于 2009-12-22T17:13:21.477 に答える
1

カスタムコーディングなしではこれを行うことはできません。最も簡単な方法は、msbuildファイルにPreBuildステップを作成することです。このステップは、すべての.aspxファイルを吐き出し、すべてのjavascriptを正規表現します。次に、YUIを使用してコンテンツを縮小し、オリジナルを縮小バージョンに置き換えます。

また、asp.netページを含む多くの圧縮を行うMbCompressionを確認することもできますが、インラインjavascriptも縮小されるとは思いません。

于 2009-12-22T16:28:39.193 に答える
0

インラインJavaScriptをバンドルして縮小することができます。テンプレート化されたRazorヘルパーを使用すると、次のような拡張メソッドを作成できます。

public static MvcHtmlString AddScriptSource(this HtmlHelper helper, Func<dynamic, HelperResult> source, string key)
{
    string scriptSource = source(null).ToHtmlString();

    // Cache scriptSource here

    return MvcHtmlString.Empty;
}

このように使用します:

@Html.AddScriptSource(@<text>$(document).ready(function() { $('h1').text('The current controller is @ViewContext.RouteData.Values["controller"].ToString()'); });</text>, "test")

数週間前に、この周りにバンドラーとミニファイアを作成しました。

https://github.com/philpeace/CodePeace.StrawberryJam

于 2012-12-03T15:18:43.007 に答える
0

ASP.NETには、MVC 4の時点でバンドルとミニファイが組み込まれています(WebフォームとWebページでも使用できます)

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

于 2012-12-03T16:21:33.630 に答える