zoukankan      html  css  js  c++  java
  • .net 运用YUI相关的dll压缩js (按照自己的规则,想想都觉得强大和有趣)

    写在前面

    不管是做前端的还是做后台的,不管是懂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:angelaTestProjectAngelaDemo20150509AngelaDemo20150509javascrptDemoajax.js";//这是你需要压缩的文件
                FileInfo finfo = new FileInfo(file);
                string strContent = File.ReadAllText(file, Encoding.UTF8);
                strContent = js.Compress(strContent);
                string newflie = @"F:angelaTestProjectAngelaDemo20150509AngelaDemo20150509javascrptDemoajax.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/

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

  • 相关阅读:
    IfcFurnishingElementType
    IfcRelAssociatesClassification
    IfcRelAssociatesDocument
    IfcContext
    IfcRelAssociatesMaterial
    我是高敏感的人,你呢?
    介绍一本红色的书
    矫枉必须过正
    大家都在说的民法典,与我有何关系?
    线上Kafka突发rebalance异常,如何快速解决?
  • 原文地址:https://www.cnblogs.com/liyunhua/p/4526615.html
Copyright © 2011-2022 走看看