css compressor java_利用YUI Compressor压缩JS/CSS之终极秘籍

JS/CSS的压缩已经不是什么新鲜话题了,自打YSlow推出后,这方面的优化话题是铺天盖地啊;不过当时作为后知后觉的我,甚至都没法完整地写出一份漂亮的JS/CSS的代码,何尝会去注意呢?!

时至今日,我仍然没法独立完整地写出一份专业的代码,但对能够压缩这类代码也有了应有的兴趣和需要,动手实现刻不容缓!

百度了很多这方面的教程,尝试了很多解决方案,可谓几经周折方才成功;喜悦之余,分享于此。

本秘籍宗旨只为实现在右键集成YUI Compressor和Editplus集成YUI Compressor。

1、关于YUI Compressor

YUI Compressor – The Yahoo! JavaScript and CSS Compressor

The YUI Compressor is a JavaScript compressor which, in addition to removing comments and white-spaces, obfuscates local variables using the smallest possible variable name. This obfuscation is safe, even when using constructs such as ‘eval’ or ‘with’ (although the compression is not optimal is those cases) Compared to jsmin, the average savings is around 20%.

The YUI Compressor is also able to safely compress CSS files. The decision on which compressor is being used is made on the file extension (js or css)

对于大量使用JavaScript和CSS的AJAX应用来说,如果JavaScript和CSS大小很大,则传输到客户端的时间会很久,网站性能不佳。而压缩JavaScript和CSS是自然的事情(其中YUI Compressor的压缩率大约为20%);

要想通过YUI Compressor来实现JS/CSS压缩,还离不开JAVA环境。

JDK环境变量配置的步骤如下:

1.我的电脑–>属性–>高级–>环境变量.

2.配置用户变量:

a.新建 JAVA_HOME

C:\Program Files\Java\jdk1.7.0_11(JDK的安装路径)

b.在PATH变量后添加

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

3.测试环境变量配置是否成功:

开始–〉运行–〉CMD

键盘敲入: JAVA

出现相应的命令,而不是出错信息,即表示配置成功!

至此,条件都准备好了。

3、右键集成YUI Compressor

右键集成的方法,我百度出一大把,其中有介绍利用Filemenu Tools工具的,操作相对简单,只要安装好这个软件,并进行相关设置即可;不过在测试时,发现压缩后的文件名不够理想。

最后发现“琼台博客”分享的“给YUI Compressor添加右键命令”最实用也最方便;

若有需要,可以移步至琼台博客查看详细教程;教程主要部分转载如下:

三、下载 compressor.cmd 放到D:\yuicompressor文件夹里

四、新建一个 compressor.reg 文件输入以下内容

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\YUI Compressor]

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\YUI Compressor\command]

@="D:\\yuicompressor\\compressor.cmd \"%1\""

五、使用记事本打开compressor.cmd

其中有一处”%JAVA_HOME%\bin\java.exe” -jar “%~dp0\build\yuicompressor-2.4.7.jar” –charset UTF-8 “%~nx1” -o “%RESULT_FILE%”

这里的build\yuicompressor-2.4.7.jar 意思是相对于自己当前路径的build路径下的yuicompressor-2.4.7.jar 文件,一般你下载压缩后这个文件通常放在build目录里,无需修改,需要注意的是后面的版本号对应真实文件就好。

如你下载的是2.4.2版本,那么你解压后build目录里的文件应该是yuicompressor-2.4.2.jar。

最后一处,就是 –charset UTF-8 了,这里我默认使用了UTF-8,如果使用GBK的请改成–charset GB18030就好

六、双击 compressor.reg 导入信息到注册表,安装完毕。找一个JS或CSS文件右键就会看到菜单了,只需要执行以下,即可生成压缩版。

右键js文件,弹出的菜单里,有一个 YUI Compressor 选项,单击它对选中的文件压缩

111c0b6cb4bc53e4b2ab88e9b562aeb8.png

正常的压缩命令提示

2237289239940c8eceeacb8b0fe58dfa.png

压缩后生成的文件,以及大小对比。小文件压缩,大小都差别不大,如果是几百K的文件,效果就非常好。更重要的是混淆

1d62b76c4c194abf8b68bd224aa44087.png

压缩前

77d4bdfd7a4e15f41f31d4fbfa6887bf.png

压缩后

49c15d25a20430ade1816ffc24be7a40.png.

轻轻松松一键搞定!

说明:

右键后,其实执行的就是compressor.cmd这个文件,如果执行出错或者没有生成文件,应该是配置的不对。

如果弹出找不到设备等信息,那么是 compressor.reg 文件里指定的 compressor.cmd 路径不对。

如果对生成文件名的规则需要修改,可以打开 compressor.cmd 找到生成文件名规则块下修改。

4、Editplus集成YUI Compressor

针对Editplus集成YUI Compressor来实现压缩功能的具体实现方法如下图:

3d3f6131f263747e52896e259b4deb44.png

其中具体参数如下:

command:java

argument:-jar $(AppDir)\filters\yuicompressor-2.4.2.jar –type $(FileExt) –charset utf-8 $(FileName)‍ -o $(FileNameNoExt)-min.$(FileExt)

initial dirctory:$(FileDir)

这里同样需要注意一下argument(参数)里的$(AppDir)\filters\yuicompressor-2.4.2.jar是相对于你yuicompressor-2.4.2.jar所处的文件路径,比如你yuicompressor-2.4.2.jar文件位于d:\soft目录下,则这里的完整文件路径应为d:\soft\yuicompressor-2.4.2.jar。

照此设置后,你就可以享受利用YUI Compressor压缩JS/CSS的便利了。

资料参考:

http://www.qttc.net/201210233.html

http://www.cnblogs.com/mamboer/archive/2011/07/27/editplus-yuicompressor.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ng-repeat循环出来的部分调用同一个函数并且实现每个模块之间不能相互干扰

使用场景:用ng-repeat几个部分,每个部分调用同一个函数,但是每个模块之间的功能不能相互干扰 问题:在用repeat实现.content块repeat的时候打算这样做:新建一个空的数组(nmber_arr),因…

java mac pos_pos终端mac国密(sm4)算法(java实现)

概念理解mac算法是(Message Authentication Codes 消息认证码算法),是含有密钥散列函数算法。主要通过异或运算,再配合其他加密算法实现mac值的运算,用于校验。实现过程将需要加密计算的字符串转换为16进制字符串例如:密钥&#x…

php-rpm.conf,在新安装的宝塔面板中php无法启动起来

在新安装的宝塔面板中php无法启动起来去看了网站的报错信息是:[Wed Aug 15 11:00:09.827025 2018] [proxy:error] [pid 4264] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php-cgi-56.sock (*) failed[Wed Aug 15…

HTML 列表中的dl,dt,dd,ul,li,ol区别及应用

HTML 列表中的dl,dt,dd,ul,li,ol区别及应用 HTML 列表中的dl,dt,dd,ul,li,ol区别及应用 工具/原料 html&#xff0c;dw软件方法/步骤 1无序列表 无序列表是一个项目的列表&#xff0c;此列项目使用粗体圆点&#xff08;典型的小黑圆圈&#xff09;进行标记。 无序列表始于 <…

php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...

摘要&#xff1a;PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PDO::MYSQL_ATTR_INIT_COMMAND > "set names utf8"),在与数据库建立连接的时候的第四个参数 example: $dbh new PDO($PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PD…

HashMap 与 ConcurrentHashMap

一、概述 二、HashMap 1、数据结构 2、应用 3、不要用 HashMap 做本地缓存 一般我们声明 HashMap 时&#xff0c;使用的都是默认的构造方法&#xff1a;HashMap<K, V>&#xff0c;但是它还有另外一个构造方法&#xff1a;HashMap(int initialCapacity, float loadFactor)…

自然语言10_分类与标注

sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare http://www.tuicool.com/articles/feAfi2 NLTK读书笔记 — …

php会不会被人工智能取代,为什么这9种工作不会被人工智能取代?

人工智能(AI)和机器学习(ML)的能力正在逐渐扩大&#xff0c;尽管如此&#xff0c;总会有一些任务所要求的质量是技术难以复制的&#xff0c;例如创造力、同情心和情感意识。有很多任务非常难以实现自动化&#xff0c;而且有些职业总是需要人的技能。我们从了解技术的各种局限性…

git中Please enter a commit message to explain why this merge is necessary.

Please enter a commit message to explain why this merge is necessary. 请输入提交消息来解释为什么这种合并是必要的 git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步)&#xff0c;如果要输入解释的话就需要: 1.按键盘字母 i 进入insert模式 2.修…

php代码显示灰色,哀悼日-实现网页变灰色的方法

哀悼日期间经常需要把网页设置为灰色状态&#xff0c;现总结一下方法以备后用&#xff0c;在网站的CSS文件中的顶部加入如下代码&#xff1a;html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale1);-webkit-filter: grayscale(100%);}或者&#xff1a;html *{…

yum阿里云镜像源

阿里云是最近新出的一个镜像源。得益与阿里云的高速发展&#xff0c;这么大的需求&#xff0c;肯定会推出自己的镜像源。阿里云Linux安装镜像源地址&#xff1a;http://mirrors.aliyun.com/ CentOS系统更换软件安装源第一步&#xff1a;备份你的原镜像文件&#xff0c;以免出错…

abp框架mysql连接配置,abp框架连接数据库

ABP框架搭建项目系列教程基础版完结篇经过前面十二篇的基础教程&#xff0c;现在终于该做个总结了。回顾第一篇&#xff0c;我们建议新手朋友们先通过ABP官网的启动模板生成解决方案&#xff0c;因为这样既快速又准确&#xff0c;不会因为项目的搭建&#xff0c;而让新手畏而却…

【分布式】Zookeeper在大型分布式系统中的应用

一、前言 上一篇博文讲解了Zookeeper的典型应用场景&#xff0c;在大数据时代&#xff0c;各种分布式系统层出不穷&#xff0c;其中&#xff0c;有很多系统都直接或间接使用了Zookeeper&#xff0c;用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式…

php 数组当链表,php数组和链表的区别总结

PHP中数组和链表的区别从逻辑结构来看1.、数组必须事先定义固定的长度(元素个数)&#xff0c;不能适应数据动态地增减的情况。当数据增加时&#xff0c;可能超出原先定义的元素个数&#xff1b;当数据减少时&#xff0c;造成内存浪费&#xff1b;数组可以根据下标直接存取。2、…

Egret资源管理解决方案

关于egret开发H5页游&#xff0c;资源管理和加载的一点看法。 一 多json文件管理 二 资源归类和命名 三 exml文件编写规范 四 资源预加载、分步加载、偷载 五 资源文件group分组 六 ResUtils&#xff0c;多json文件管理类 七 ResUtils&#xff0c;资源组加载管理类 八 开发中遇…

java 等待唤醒机制,Java线程等待唤醒机制

记录面试过程中被问到的几个需要手写代码的小案例1.请手写出线程的等待唤醒机制案例中两个线程&#xff1a;SyncSetThread设置学生信息&#xff0c;SyncGetThread用来获取学生信息&#xff0c;在Student实体中提供一个标记属性flag&#xff0c;记录当前是否有数据。等待唤醒机制…

Xshell实现Windows上传文件到Linux主机

经常有这样的需求&#xff0c;我们在Windows下载的软件包&#xff0c;如何上传到远程Linux主机上&#xff1f;还有如何从Linux主机下载软件包到Windows下&#xff1b;之前我的做法现在看来好笨好繁琐&#xff0c;不过也达到了目的&#xff0c;笨人有本方法嘛&#xff1b; 我是怎…

java实现键盘移动图片,快速移动视图与键盘

我试图在键盘出现时向上移动视图&#xff0c;在键盘隐藏时向下移动 .我遇到的问题是高度似乎不同&#xff1a;KBH1输出216&#xff0c;KBH2输出260 .这导致视图向下移动得比最初移动的距离更远 .我该如何纠正这个&#xff1f;extension UIViewController {func addKeyboardFunc…

python-变量操作-字符串

python对变量&#xff08;不同数据类型&#xff09;的操作 数字操作字符串操作列表操作元组操作集合操作字典操作Python3 中有六个标准的数据类型&#xff1a;Number&#xff08;数字&#xff09;、String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、T…

织梦自适应php源码,DEDE织梦PHP源码响应式建筑设计类网站织梦模板(自适应手机端)...

模板名称&#xff1a;响应式建筑设计类网站织梦模板(自适应移动端) 利于SEO优化模板详情&#xff1a;织梦最新内核开发的模板&#xff0c;该模板属于企业通用、HTML5响应式、建筑设计类企业使用&#xff0c;一款适用性很强的模板&#xff0c;基本可以适合各行业的企业网站&…