写在前面

不管是做前端的还是做后台的,不管是懂javaScript的还是不太懂JavaScript的人,我想都或多或想的知道些许js压缩对于页面性能提升的效应吧。

之前老喜欢用在线压缩工具去压缩js,其实想想之前的这个做法就有些不寒而栗,假设一下,如果一个项目中的js有50个的话,你要去用在线压缩工具压缩js50次吗?仅仅发布一次就压缩50次,那是不是每个发布项目的时候都要去做这个工作,这是多么重复而双乏味的事情。

再假设,不同页面上引用了相同的n个js,如果我们只是按照单独的js去压缩的话,那是不是。。。

事实上我们更希望有这样一个工具帮助我们来压缩js,而这个工具只需要我们点击一下就可以了,然后它就会按照我们设置好的规则去自动压缩js,再之后我们就可以轻松的将这些压缩好的js发布到站点。

所谓的磨刀误砍柴工,下面我们就来看看这个工具的实现原理吧!(具体规则你们按照自己项目的需要去定哦)

.net压缩js和css相关的DLL

大家百度一下关键字“Yahoo.Yui.Compressor”下载相关的DLL,当然也可以下载我上传的

Yahoo.Yui.Compressor

具体实现原理(简单的例子如下所示)

            var js = new JavaScriptCompressor();
js.CompressionType = CompressionType.Standard;//压缩类型
js.Encoding = Encoding.UTF8;//编码
js.IgnoreEval = false;//大小写转换
js.ThreadCulture = System.Globalization.CultureInfo.CurrentCulture;
string file = @"F:\angelaTestProject\AngelaDemo20150509\AngelaDemo20150509\javascrptDemo\ajax.js";//这是你需要压缩的文件
FileInfo finfo = new FileInfo(file);
string strContent = File.ReadAllText(file, Encoding.UTF8);
strContent = js.Compress(strContent);
string newflie = @"F:\angelaTestProject\AngelaDemo20150509\AngelaDemo20150509\javascrptDemo\ajax.min.js";//这是已经存在的js文件(保存你压缩的js)
File.SetAttributes(newflie, FileAttributes.Normal);
File.WriteAllText(newflie, strContent, Encoding.UTF8);

说说后话

上面只是说了引用Yahoo相关的压缩dll,可以用来压缩js和压缩CSS,那么回到我们最初的话题,怎样做一个工具来实现将多个文件压缩压缩成一个文件呢,其实这个实在是太简单了,有些事情事实上只要我们知道原理,其它的只是不同的方法罢了,比如说我们可以做一个c# windows窗体程序,让用户自己输入原js文件所在的路径(可单选也可多选),然后输入压缩后的js文件所在的路径。

当然这个方法不够灵活,也可以用xml文件来配置我们的规则,然后我们的工具根据我们配置的规则来进行压缩。

最后我们页面上引用的只是压缩好的js地址。

可能我文采不够好,也说的比较简单。事实上原理就是这么简单,只是用的人选择的道路不一样,走出不一样的风景罢了。

附录js压缩工具

http://prettydiff.com/?m=beautify&s=http://prettydiff.com/prettydiff.js

http://yui.github.io/yuicompressor/

http://jscompress.com/

附录js反压缩工具

http://jsbeautifier.org/

http://javascriptbeautifier.com/

如果您觉得本篇博文对您有所收获,觉得小女子还算用心,请点击右下角的 [推荐],谢谢!

.net 运用YUI相关的dll压缩js (按照自己的规则,想想都觉得强大和有趣)的更多相关文章

  1. Asp.Net使用Yahoo.Yui.Compressor.dll压缩Js|Css

    网上压缩css和js工具很多,但在我们的系统中总有特殊的地方.也许你会觉得用第三方的压缩工具很麻烦.我就遇到了这样问题,我不想在本地压缩,只想更新到服务器上去压缩,服务器压缩也不用备份之类的操作.于是 ...

  2. YUI Compressor是如何压缩JS代码的?

    YUI Compressor 压缩 JavaScript 的内容包括: 移除注释 移除额外的空格 细微优化 标识符替换(Identifier Replacement) YUI Compressor 包 ...

  3. yui压缩JS和CSS文件

    CSS和JS文件经常需要压缩,比如我们看到的XX.min.js是经过压缩的JS. 压缩文件第一个是可以减小文件大小,第二个是对于JS文件,默认会去掉所有的注释,而且会去掉所有的分号,也会将我们的一些参 ...

  4. 使用雅虎YUI Compressor压缩JS过程心得记录

    对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...

  5. yui压缩js文件

    http://ganquan.info/yui/?hl=zh-CN yui压缩js文件 在工程中,js文件的管理是个麻烦事,并且随着项目越做越多,各种js文件混杂,有时候一个页面需要加载好多js文件, ...

  6. iis7 压缩js文件和启用gzip压缩

    压缩js文件 打开IIS 7的配置文件:c:\windows\system32\inetsrv\config\applicationhost.config 在<staticContent loc ...

  7. uglifyjs压缩JS的

    一.故事总有其背景 年末将至,很多闲适的时间,于是刷刷微博,接触各种纷杂的信息——美其名曰“学习”.运气不错,遇到了一个新名词,uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基 ...

  8. uglifyjs压缩JS

    一.故事总有其背景 年末将至,很多闲适的时间,于是刷刷微博,接触各种纷杂的信息——美其名曰“学习”.运气不错,遇到了一个新名词,uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基 ...

  9. 小tip:我是如何初体验uglifyjs压缩JS的

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2946 一.故事总有其 ...

随机推荐

  1. (二十一)状态模式详解(DOTA版)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 本次LZ给各位介绍状态模式, ...

  2. Javascript/jQuery 获取地址栏URL参数的方法

    1.jquery获取url很简单,代码如下 window.location.href; 2.javascript获取url参数 function getUrlParam(name) { var reg ...

  3. js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证

    本文主要汇总各种正则验证,很多都是转载,本人也会尽可能验证准确性,如有错误欢迎留言 //trim()方法在有些浏览器中不兼容,最好自己重写一下 String.prototype.trim=functi ...

  4. [转]搞ACM的你伤不起(转自Roba大神)

    劳资六年前开始搞ACM啊!!!!!!!!!! 从此踏上了尼玛不归路啊!!!!!!!!!!!! 谁特么跟劳资讲算法是程序设计的核心啊!!!!!! 尼玛除了面试题就没见过用算法的地方啊!!!!!! 谁再跟 ...

  5. Linux配置VNC实现远程图形化操纵

    问题描述 有些时候需要用到图形化,其实可以通过其他途径实现.但是懒惰的就喜欢VNC,总的老说都是需要图形组件的 问题解决 在Centos测试 一.图形化的Linux 01.安装 rpm  ivh vn ...

  6. hibernate的hql查询

    1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...

  7. git flow的使用

    简介 Gitflow工作流程围绕项目发布定义了严格的分支模型.尽管它比Feature Branch Workflow更复杂一些,但它也为管理更大规模的项目提供了坚实的框架. 与Feature Bran ...

  8. supervisor program配置实例

    program 配置 上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件.可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而 ...

  9. 日期处理-将String 转为Date

    package com.test; import java.text.DateFormat; import java.text.ParseException; import java.text.Sim ...

  10. 【BZOJ 1503】【NOI 2004】郁闷的出纳员

    $Splay$模板题. 复习一下伸展树的模板. 一定不要忘了push啊!!! 对于减工资后删掉员工的操作,我选择插入一个$min+delta_{减少的工资}$的节点,把它$Splay$到根,砍掉它自己 ...