zoukankan      html  css  js  c++  java
  • MVC4的bundling功能简介

    Bundling and Minification是asp.net mvc4中一项可以减少用户请求等待时间,提升用户体验的一项技术。在VS2010中新建MVC4项目是,如果选择"基本"项目,项目模板就会默认使用该项技术。但如果是选择“空”项目,或者想为自己原来的项目添加这项技术,该如何做呢。主要要以下几步:

    • 在项目中选择引入System.Web.Optimization。

    • 在Global.asax加入BundleConfig.RegisterBundles(BundleTable.Bundles)

    • 在两个web.config中加入<add namespace="System.Web.Optimization" />(不加系统会提示CSHTML页中的SCRIPT等不存在)

    • 在app_start下建立BundleConfig.cs,建立绑定。内容如下:

    •         // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
              public static void RegisterBundles(BundleCollection bundles)
              {
                  bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                              "~/Scripts/jquery-{version}.js"));
      
                  bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                              "~/Scripts/jquery-ui-{version}.js"));
      
                  bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                              "~/Scripts/jquery.unobtrusive*",
                              "~/Scripts/jquery.validate*"));
      
                  bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
                              "~/Scripts/knockout-{version}.js"));
      
                  // 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-*"));
      
                  //所有的js
                  bundles.Add(new ScriptBundle("~/bundles/js_all").Include(
                      "~/Scripts/jquery-{version}.js",
                      "~/Scripts/jquery-ui-{version}.js",
                      "~/Scripts/jquery.unobtrusive*",
                      "~/Scripts/jquery.validate*",
                      "~/Scripts/knockout-{version}.js",
                      "~/Scripts/modernizr-*"));
      
                  bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
      
                  bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                              "~/Content/themes/base/jquery.ui.*"));
      
                  //所有的css
                  bundles.Add(new StyleBundle("~/Content/css_all").Include(
                      "~/Content/site.css",
                      "~/Content/themes/base/jquery.ui.*"));
              }

      再在母版页中加入:

    •     @Styles.Render("~/Content/css_all")
          @Scripts.Render("~/bundles/js_all")

      大功告成,这里还有一步很关键的,就是把WebConfig中的Debug设置改为false,然后<Ctrl>+<F5>看网站,非常棒,对吧……

      也许你要说我有些地方其实不需要那么多的js或者css呢,它都帮我捆了起来岂不是会降低效率?——基本上不会,因为浏览器都有缓存的功能,除非你按F5刷新页面,(如果是苹果系统的话我记得是<Command>+<R>),浏览器才会尝试从服务器上重新下载js和css,就算重新下载,经过捆绑和压缩的js和css也没多大,效率还行的。如果你实在不想捆那么多js或者css的,那就把bundling设置得细一些,但这样的话就可能导致更多次的请求,从而效率有所下降,总之就是要自己好好权衡了。

  • 相关阅读:
    toFixed()与银行家舍入
    VScode链接服务器并配置公钥-SSH Keys
    改造@vue/cli项目为服务端渲染-ServerSideRender
    vue预渲染及其cdn配置
    界面优化--如何提升用户体验(Velocity.js和GSAP)
    eslint配置介绍-如何在uniapp中配置eslint
    babel 的介绍及其配置
    如何为我的VUE项目编写高效的单元测试--Jest
    計算幾何 學習
    Manacher
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3629401.html
Copyright © 2011-2022 走看看