Asp.net mvc 4 BundleConfig中有多个ScriptBundle包的原因吗?

Asp.net mvc 4 BundleConfig中有多个ScriptBundle包的原因吗?,asp.net-mvc-4,asp.net-mvc-5,bundling-and-minification,Asp.net Mvc 4,Asp.net Mvc 5,Bundling And Minification,这里,默认的MVC5应用程序BundleConfig: public class BundleConfig { // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new Script

这里,默认的MVC5应用程序BundleConfig:

public class BundleConfig
{
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));
    }
}
如果只有一个包,其中包含所有需要的脚本,不是会简单得多吗?像这样:

public class BundleConfig
{
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery.validate*",
                    "~/Scripts/modernizr-*",
                    "~/Scripts/bootstrap.js",
                    "~/Scripts/respond.js"));
    }
}
或者更简单,像这样(在脚本文件夹中,您只放置需要的JS文件):

如果只有一个包,其中包含所有需要的脚本,不是会简单得多吗

这可能会稍微简化开发过程,因为您不需要寻找要包含的相应包。但让我们从另一个角度来看这一点

在以下情况下,它是:

捆绑和缩小是可以在ASP.NET 4.5中使用的两种技术,用于缩短请求加载时间。捆绑和缩小通过减少对服务器的请求数量和减少请求的资产(如CSS和JavaScript)的大小来缩短加载时间

因此,我们进行捆绑以加快工作速度。如果您使用简单表单创建了一个不需要
bootstrap.js
的页面,该怎么办。如果你对加速一切感兴趣,为什么还要加载它呢

最好的性能选择是将您可能需要的所有可能的js文件组合放在一个单独的捆绑包中。每个页面只发出一个请求来获取它所需的所有js。然而,这种方式很难维持

所以,这取决于你决定你感兴趣的方面

public class BundleConfig
{
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/scripts").Include("~/Scripts/*"));
    }
}