简介

根据雅虎卓越性能团队的说法,40%到60%的雅虎用户拥有空闲缓存体验,所有页面浏览量中约有20%是使用空缓存完成的(请参阅Tenni Theurer在YUIBlog上的这篇文章)有关浏览器缓存使用的更多信息)。这一事实概述了保持网页尽可能轻量化的重要性。改进页面或Web应用程序的工程设计通常会带来最大的节省,而且应始终是主要策略。通过正确的设计,有许多提高性能的辅助策略,例如缩小代码,HTTP压缩,使用CSS sprite等。

在代码缩小方面,最广泛使用的缩小JavaScript代码的工具是Douglas Crockford的 JSMIN, Dojo压缩器和Dean Edwards的 Packer。然而,这些工具中的每一个都具有缺点。例如,JSMIN不会产生最佳节省(由于其简单的算法,它必须在代码中留下许多换行符以便不引入任何新的错误)。

JavaScript和CSS缩小的目标始终是保持代码的操作质量,同时减少其整体字节占用空间(无论是原始术语还是gzipping之后,因为生产Web服务器提供的大多数JavaScript和CSS都作为HTTP协议的一部分进行了压缩)。YUI Compressor是JavaScript minizer,设计为100%安全,压缩率高于大多数其他工具。与JSMin相比,YUI库的测试节省了20%以上(在HTTP压缩后变为10%)。YUI Compressor还能够通过使用Isaac Schlueter基于正则表达式的CSS缩小器的端口来压缩CSS文件。

download

https://github.com/yui/yuicompressor/releases

直接下载jar包即可。

work

YUI Compressor是用Java编写的(需要Java> = 1.4)并依赖Rhino来标记源JavaScript文件。它首先分析源JavaScript文件,以了解它的结构。然后它打印出令牌流,省略尽可能多的空格字符,并用任何适当的替换方式替换所有本地符号1(或2或3)字母符号

cmd

以下命令行(xyz表示版本号):

$ java -jar yuicompressor-xyzjar my.js -o my.min.js

将缩小文件myfile.js并输出文件myfile-min.js。有关如何使用YUI Compressor的更多信息,请参阅存档中包含的文档。

charset参数并不总是必需的,但如果文件的编码与系统的默认编码不兼容,压缩器可能会抛出错误。特别是,如果您的文件以utf-8编码,则应提供参数。

$ java -jar yuicompressor-xyzjar myfile.js -o myfile.min.js --charset utf-8

YUI Compressor的更多相关文章

  1. YUI Compressor for Sublime text2

    YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发. 最近压缩文件,常使用在线压缩的方式来压缩文件,一来多有不便,二来如果没有网络,只能搁置了.本文来描述如何 ...

  2. 前端代码优化: 使用YUI Compressor

    通过压缩组件,可以显著减少HTTP请求和响应事件.这也是减小页面大小最简单的技术,但也是效果最明显的. 压缩JS,CSS代码有几种常用插件,YUI Compressor是个不错的选择.通过maven的 ...

  3. C#Css/Js静态文件压缩--Yui.Compressor.Net

    一.Asp.Net 自带静态文件压缩工具包 Microsoft.AspNet.Web.Optimization http://www.nuget.org/packages/Microsoft.AspN ...

  4. YUI Compressor压缩失效的场景-eval和with

    一.官方文档的说明 in the face of evil features such as eval or with, the YUI Compressor takes a defensive ap ...

  5. YUI Compressor JS和CSS压缩工具使用方式(使用前安装JDK)

    压缩测试: 选中 test.js, 执行右键菜单“Process with &YUICompressor”,会生成 test-min.js. 注意事项: 1. 需要安装 JDK >= 1 ...

  6. 【转载】Yui.Compressor高性能ASP.NET开发:自动压缩CSS、JS

    在开发中编写的js.css发布的时候,往往需要进行压缩,以减少文件大小,减轻服务器的负担.这就得每次发版本的时候,对js.js进行压缩,然后再发布.有没有什么办法,让代码到了服务器上边,它自己进行压缩 ...

  7. YUI Compressor 压缩 JavaScript 原理-《转载》

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

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

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

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

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

随机推荐

  1. Java中nextLine()与其他next(),nextInt(),nextFloat()的区别

    最近学习Java过程中遇到一个小问题,就是用nextInt()来接收输入内容时,按完回车之后会产生后面的内容无法输入的结果,因此来做个小记录.有不足的地方还请大家指出. 区别一  读取返回结果 nex ...

  2. 操作系统,时间片轮转算法的C语言实现Round Robin

    #include "windows.h" #include <conio.h> #include <stdlib.h> #include <fstre ...

  3. 折腾Java设计模式之建造者模式

    博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...

  4. vuex的用法

    https://segmentfault.com/a/1190000015782272

  5. 虹软免费人脸识别SDK注册指南

    成为开发者三步完成账号的基本注册与认证:STEP1:点击注册虹软AI开放平台右上角注册选项,完成注册流程.STEP2:首次使用,登录后进入开发者中心,点击账号管理完成企业或者个人认证,若未进行实名认证 ...

  6. JMeter接口测试实战-动态数据验证

    JMeter接口测试实战-动态数据验证 说到验证就不得不说断言, 先来看下JMeter官方给出断言(Assertion)的定义, 用于检查测试中得到的响应数据等是否符合预期,用以保证测试过程中的数据交 ...

  7. go get获取gitlab私有仓库的代码

    目录 目录 1.Gitlab的搭建 2.如何通过go get,获取Gitlab的代码 目录 1.Gitlab的搭建   在上一篇文章中,已经介绍了如何搭建Gitlab Https服务<Nginx ...

  8. RowKey设计之单调递增行键/时序数据

    ​在一个集群中,一个导入数据的进程锁住不动,所有的client都在等待一个region (因而也就是一个单个节点),过了一会后,变成了下一个region…​如果使用了单调递增 或者时序的key便会造成 ...

  9. mysqlbinlog 工具分析binlog日志

    MySQL的binlog 日志对于生产环境非常有用,任何时间对数据库的修改都会记录在binglog中:当数据发生增删改,创建数据库对象都会记录到binlog中,数据库的复制也是基于binlog进行同步 ...

  10. selenium之表格的定位

    浏览器网页常常会包含各类表格,自动化测试工程师可能会经常操作表格中的行,列以及某些特定的单元格,因此熟练掌握表格的定位方法是自动化测试实施过程中必要的技能. 被测试网页的HTML代码 <!DOC ...