Bundle捆绑压缩技术

Bundle捆绑压缩技术由命名空间System.Web.Optimization中的类提供。顾名思义,这些类是用来优化Web页面性能的,它们通过压缩文件大小,捆绑文件(把多个文件合成一个下载文件)来实现优化。

一、在空MVC项目中添加Bundle捆绑

1.新建一个空MVC项目,命名为MVCBundleDemo

2.使用NuGet下载jquery和jquery validation以及bootstrap

3.通过NuGet下载Microsoft.AspNet.Web.Optimization

修改View下面的Web.config文件,添加System.Web.Optimization命名空间引用,使得所有View视图都可以使用这个命名空间里的类

4.在App_Start文件夹下新建BundleConfig类,代码如下:

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*"));

            // 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好
            // 生产准备时,请使用 http://modernizr.com 上的生成工具来仅选择所需的测试。
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }

5.在Global.asax文件中注册BundleConfig,代码如下:

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);//注册BundleConfig
        }
    }

6.新建Home控制器,右键Index方法,添加视图,勾选使用分布页,如下图:

vs工具会自动创建Shared文件夹以及_Layout.cshtml布局页

7.查看_Layout.cshtml布局页中css和js引用

二、在节点中放置js脚本

因为布局页中jquery引用是放在文本最后的,在视图中添加js,就会出现一个问题,js脚本出现在jquery引用前,导致js脚本无效。解决这个问题的方法是将js脚本放置在scripts节点中(布局页中定义的@RenderSection("scripts", required: false))。

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<div>
    <input type="button" id="btnUserList" value="获取用户信息" />
    <div id="divUserList"></div>
</div>
@*节点中放置js代码*@
@section Scripts{
  <script src="~/Scripts/App/Ajax.js"></script>
}
时间: 2024-07-29 23:07:53

Bundle捆绑压缩技术的相关文章

MVC4商城项目四:应用Bundle捆绑压缩技术

从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConfig类就有个很牛X的功能:合并与压缩.想到以前做ASP.NET的时候要通过工具压缩,手动合并,很麻烦.通过BundleConfig可以大大的提高工作效率和项目性能. 一.基本的使用 1.1.Global.asax文件的初始化 protected void Application_Start() {

1、新建MVC项目,添加easyui,并启用捆绑压缩

一.新建MVC项目,选择mvc4,选择.NET Framework4框架.考虑对server 2003的支持,选择.NET Framework4框架. 二.选择项目模板:选"空",视图引擎:选"Razor". 三.添加easy ui 1.右键选择"管理NuGet程序包" 2.在联机中搜索easyui ,此处为1.4.5版本,点击安装.安装完成后项目中自动新增"Content"和"script"两个文件夹.

Asp.net MVC在View里动态捆绑压缩引用的js

前言 Asp.net MVC 4以上版本多了BundleConfig.RegisterBundles方法,可以把要捆绑的脚本或样式进行捆绑压缩,以减少客户端的请求次数从而提高了客户端的访问速度. 问题 但世上懒人的数量还是很多,我也是一个,觉得这个方法还不够方便.在实际中,一些小的页面或独立页面,开了一些开源的js库之后,js文件比较多,而且每个页面引用的js又不太一样,如果能不在BundleConfig描述如何捆绑,像传统一样把js拉过来就能自动达到捆绑后的效果,是懒人多想要的结果.正是朝着这

手游寒冬季如何通过包压缩技术规避项目损失?

手游寒冬论的兴起是有缘由的,看TalkingData发布<2015年上半年移动游戏行业报告>,报告显示,移动游戏行业人口红利趋于饱和,截至 2015年Q2,接触移动游戏的累计设备规模为12.8亿,移动游戏活跃设备规模达9.1亿.活跃设备增幅从2014年Q1的37.5%,下滑至 5.8%. 手游用户规模增长率连续下降.同时营收增速放缓,各种潜在用户规模的缩小导致大量企业的“洗用户”的模式效果降低.然而在缺失增量的情况下,大部分企业需求立足存量用户,这还导致对用户流量的争夺也是越演越烈,导致非常多

手游包压缩技术引领手游行业实现app页游化

近些年,掌上游戏时代已经成为全民风尚,但身为游戏开发商考虑过手游安装包大小与用户转化率之间的关系吗? 随着手机游戏市场发展愈发壮大,行业发展愈加成熟,手游厂商愈来愈多,手游产业也进入了优胜劣汰的环节,产业的阵痛也凸显了出来.手游安全.用户体验度.优质游戏包体太大.游戏版本更新导致用户流失等等,这些都与手游厂商生存息息相关. 尤其是游戏包体的大小直接关系到了游戏厂商推广渠道的成本问题.想要高质量,意味着包体变大,压缩包体却会有损游戏质量,这样的难题在手游行业由来已久.不同类型的游戏都有其包体体积的

转:关于数据库压缩技术的Survey

原文来自于:http://outofmemory.cn/mysql/database-compression-tech 昨天给团队内的小伙伴做了一个关于数据库压缩技术的Survey,现将其中可以公开的部分分享出来.数据库压缩技术目前已经成为了各种数据库的标配技术,这里面包括三大商业数据库.各种专业的分新型数据库,也包括各种开源数据库和NoSQL数据库. 到了今天,数据库压缩技术的运用已经不单纯是为了节省存储成本,更多的时候,是为了提供更高的计算密度(比如容量受限的SSD),以及提供更高的查询性能

Java压缩技术(二) ZIP压缩——Java原生实现

原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZIP的java原生实现. 看了几篇zip压缩算法的帖子,讲的算是比较细致了,但就是没有对应的解压缩实现,太惜败了! 我就喜欢没事做总结,稍作整理,将其收纳! 相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——J

Java后端实现图片压缩技术

今天来说说图片压缩技术,为什么要使用图片压缩,图片上传不就完事了吗?对的,这在几年前可以这么说,因为几年前还没有现在这么大的并发,也没有现在这么关注性能. 如今手机很多,很多人都是通过手机访问网络或者app,再调用接口的时候肯定会多多少少的浏览图片,尤其是脱离wifi的情况下,可以看到很多软件展示都会展示小图,这个小图就是压缩的图片,点击后才会放大,如下: 这样的做法可以尽量减少手机端的图片展示压力,因为一个图片对于上传者来说可能是几百K,也有可能是几兆,这样对于手机端无遗展现的压力会比较大,同

数据库压缩技术探索

作为数据库,在系统资源(CPU.内存.SSD.磁盘等)一定的前提下,我们希望: 存储的数据更多:采用压缩,这个世界上有各种各样的压缩算法: 访问的速度更快:更快的压缩(写)/解压(读)算法.更大的缓存. 几乎所有压缩算法都严重依赖上下文: 位置相邻的数据,一般情况下相关性更高,内在冗余度更大: 上下文越大,压缩率的上限越大(有极限值). 块压缩 传统数据库中的块压缩技术 对于普通的以数据块/文件为单位的压缩,传统的(流式)数据压缩算法工作得不错,时间长了,大家也都习惯了这种数据压缩的模式.基于这