zoukankan      html  css  js  c++  java
  • MVC 打包压缩

    1、压缩捆绑

    1.1 App_Start文件夹下

    public class BundleConfig
        {
            // 有关捆绑的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=301862
            public static void RegisterBundles(BundleCollection bundles)
            {
                //创建一个虚拟目录“~/bundles/jquery” 这个虚拟目录的名字可以随便你取(用一个虚拟路径来初始化Bundle的实例,这个路径并不真实存在)  
                bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                           //在虚拟目录中添加了绝对路径的js文件,与版本无关
                            "~/Scripts/jquery-{version}.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                            "~/Scripts/jquery.validate*"));
    
                // 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好
                // 生产准备就绪,请使用 https://modernizr.com 上的生成工具仅选择所需的测试。
                bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                            "~/Scripts/modernizr-*"));
    
                bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                          "~/Scripts/bootstrap.js"));
    
                bundles.Add(new StyleBundle("~/Content/css").Include(
                          "~/Content/bootstrap.css",
                          "~/Content/site.css"));
            }
        }
    BundleConfig

    1.2 _ViewStart.cshtml 指定布局

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>@ViewBag.Title - 我的 ASP.NET 应用程序</title>
    
        <!--这里也可以引入自己的文件-->
        <script src="~/Scripts/jquery-3.3.1.min.js"></script>
    
        <!--添加ajax的包,在NuGet中搜索ajax-->
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    
        <!--这样就相当于把BundleConfig.cs文件中 bundles.Add(new StyleBundle("~/Content/css")中添加的css文件全部都引入进来了-->
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    
    </head>
    <body>
        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    @Html.ActionLink("应用程序名称", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li>@Html.ActionLink("主页", "Index", "Home")</li>
                        <li>@Html.ActionLink("关于", "About", "Home")</li>
                        <li>@Html.ActionLink("联系方式", "Contact", "Home")</li>
                    </ul>
                    @Html.Partial("_LoginPartial") <!--在这里添加登录内容-->
                </div>
            </div>
        </div>
        <div class="container body-content">
            @RenderBody()  <!--在这里插入body的内容,注意这些都是在body标签结束之前,包括@section scripts-->
            <hr />
            <footer>
                <p>&copy; @DateTime.Now.Year - 我的 ASP.NET 应用程序</p>
            </footer>
        </div>
    
        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/bootstrap")
        @RenderSection("scripts", required: false) <!--这里的意思是在其他页面使用 @section scripts{<script>.... </script}-->
    </body>
    </html>
    布局文件(_Layout.cshtml)

    1.3 在web.config中

        debug=“true”允许调试,这样断点进去可以调试。 一般在发布时改为false,这样js 、css文件就被压缩了,注释空格等都被删了,为了减少页面请求,优化客户体验。

    1.4 使用ajax

      - 页面要引入:jquery-3.3.1.min.js、jquery.unobtrusive-ajax.min.js

    @{
        ViewBag.Title = "Home Page";
    }
    
    
    <div id="d1" style="height:200px;400px;border:1px solid red;background-color:yellow">
       
    </div>
    
    <div class="row">
        <div class="col-md-4">
            <p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301865">Learn more &raquo;</a></p>
        </div>
    </div>
    
    <div class="row">
        <i class="btn btn-primary" id="c">
            Click here to see today's special!
        </i>
        <div class="col-md-12" id="ShowMsg">
    
        </div>
    </div>
    
    @section scripts{
        <script>
            $(function () {
                //从服务器获取数据并且将返回的html代码插入到匹配的元素中
                $("#d1").load("Contact");
            });
    
            $("#c").click(function () {
                console.log(1); //开始不知道这里会不会进来,就加alert(), console.log()进行调试
                $.ajax({
                    type: 'get',  //默认为get
                    url: "@Url.Action("DailyDeal")",
                    timeout: 1000,  //请求超时时间,默认毫秒
                    data: 'type=3&str=xx', //发送到服务器的数据,键值对或字符串
                    cache: 'false', //设置浏览器缓存
                    dataType: 'html', //可以使json、html、xml
                    //sucess中的data是从服务器返回的数据,并根据dataType参数类型处理后的数据,默认是json
                    success: function (data) { $("#ShowMsg").html(data) }
                });
            });
        </script>
    
    }
    使用ajax
    $(document).ready(function () {
     2         $("#btn1").click(function () {
     3             var data = "";
     4             var name = $("#txtName").val();
     5             var age = $("#txtAge").val();
     6             data += "&Name=" + encodeURI(name);
     7             data += "&Age=" + encodeURI(age);
     8             $.ajax({
     9                 async: true,
    10                 cache: false,
    11                 timeout: 60 * 60 * 1000,
    12                 data: data,
    13                 type: "GET",
    14                 datatype: "JSON",
    15                 url: "/Ajax/AddUsers",
    16                 success:function(result)
    2                   {
    3                     result = JSON.parse(result);
    4                     $("#display").text(result.Name + result.Message);
    5                   },
    20                 error: function (result) {
    21                     $("#display").html("error");
    22                 },
    23             })
    24         });
    
    
    public ActionResult DoWithUsers()
     2         {
     3             var my = new MyModel();
     4             try
     5             {
     6                 this.UpdateModel(my);
     7                 string name = my.Name;
     8                 int age = my.Age;
     9                 string temp = "";
    10                 if (age < 18) temp = "的文章好烂啊";
    11                 else temp = ",记得烂也要写";
    12                 JavaScriptSerializer jss = new JavaScriptSerializer();
    13                 return Json(jss.Serialize(new { Name = name, Message = temp }), JsonRequestBehavior.AllowGet);
    14             }
    15             catch(Exception ex)
    16             {
    17                 return null;
    18             }
    19         }
    View Code
  • 相关阅读:
    Effective Java 第三版——72. 赞成使用标准异常
    Effective Java 第三版——71. 避免不必要地使用检查异常
    Effective Java 第三版——70. 对可恢复条件使用检查异常,对编程错误使用运行时异常
    Effective Java 第三版——69. 仅在发生异常的条件下使用异常
    Effective Java 第三版——68. 遵守普遍接受的命名约定
    Effective Java 第三版——67. 明智谨慎地进行优化
    Effective Java 第三版——66. 明智谨慎地使用本地方法
    Effective Java 第三版——65. 接口优于反射
    Effective Java 第三版——64. 通过对象的接口引用对象
    Effective Java 第三版——63. 注意字符串连接的性能
  • 原文地址:https://www.cnblogs.com/SmileSunday/p/9086911.html
Copyright © 2011-2022 走看看