在ASP.NET中捆绑单个文件有哪些成本/收益?

时间:2015-09-02 14:47:25

标签: asp.net asp.net-mvc-5 bundle

我正在使用asp.net mvc5创建一个网站,我需要将一个特定的css和js文件添加到单个页面。我的问题是,为单个css或js文件创建新包有什么好处?或者捆绑单个文件的不良做法,我不应该这样做?

下面的代码就是我的意思是不捆绑vs捆绑单个文件:

Traditional Method:
<link href="/content/css/foo.css" rel="stylesheet"/>
<script src="~/content/js/bar.min.js"></script>

Bundle Method:
bundles.Add(new ScriptBundle("~/bundles/bar").Include(
    "~/content/js/bar.min.js"));

bundles.Add(new StyleBundle("~/content/foobundle").Include(
     "~/content/css/foo.css"));

此问题仅适用于捆绑单个文件。就像在我的情况下,我使用的日期选择器插件只在我的ASP.NET MVC应用程序的一个页面上使用,所以将css和js文件添加到我的整个网站包没有意义。

2 个答案:

答案 0 :(得分:4)

首先,捆绑是一次又一次的事情,所以我不会太关注捆绑的性能成本。换句话说,第一次请求包时,必须创建它,但每个后续请求只是静态地提供先前创建的文件(假设您没有更改包)。

捆绑单个文件有价值吗?那么,这取决于那个单一的文件。它有多大?它已经被最小化了吗?如果它是一个大的,未经过最小化的文件,那么是的,捆绑它的价值非常大,因为捆绑版本将是一个较小的文件大小。当然,使用多个文件更为明显,因为您不仅要减少文件大小,还要减少请求。但是,我仍然建议您始终只使用捆绑包。就像我上面所说的那样,捆绑的成本只发生在第一个请求上,如果你真正关心它,你发布网站后总是可以由请求。然后,静态提供每个进一步的请求,直到您更改捆绑包。

答案 1 :(得分:0)

它是一个有价值的功能,在生产环境中更有价值。话虽如此,在我正在进行的项目上 - 无论文件数量多少,我们都会使用该功能。

这个答案非常好:

What is the benefit of ASP.NET bundling and minification in runtime?