首页

关于googlecode源码中对javascript脚本进行压缩YuiJavaScriptCompressor实现源码说明

标签:googlecode,javascript压缩,YuiJavaScriptCompressor,js去除空格,JS去除注解,JAVASCRIPT去除回车换行     发布时间:2018-06-08   

一、前言

关于htmlcompressor源码包中com.googlecode.htmlcompressor.compressor.YuiJavaScriptCompressor、com.googlecode.htmlcompressor.compressor.Compressor定义javascript脚本压缩接口及实现类,可以对空格、回车、换行及注释等进行过滤压缩处理。

二、源码说明

1.Compressor接口

package com.googlecode.htmlcompressor.compressor;@b@@b@public abstract interface Compressor@b@{@b@  public abstract String compress(String paramString);@b@}

2.YuiJavaScriptCompressor实现类

package com.googlecode.htmlcompressor.compressor;@b@@b@import com.yahoo.platform.yui.compressor.JavaScriptCompressor;@b@import java.io.IOException;@b@import java.io.PrintStream;@b@import java.io.StringReader;@b@import java.io.StringWriter;@b@import org.mozilla.javascript.ErrorReporter;@b@import org.mozilla.javascript.EvaluatorException;@b@@b@public class YuiJavaScriptCompressor@b@  implements Compressor@b@{@b@  private boolean noMunge = false;@b@  private boolean preserveAllSemiColons = false;@b@  private boolean disableOptimizations = false;@b@  private int lineBreak = -1;@b@  private ErrorReporter errorReporter = new DefaultErrorReporter();@b@@b@  public String compress(String source)@b@  {@b@    StringWriter result = new StringWriter();@b@    try {@b@      JavaScriptCompressor compressor = new JavaScriptCompressor(new StringReader(source), this.errorReporter);@b@      compressor.compress(result, this.lineBreak, (!(this.noMunge)) ? 1 : false, false, this.preserveAllSemiColons, this.disableOptimizations);@b@    } catch (IOException e) {@b@      result.write(source);@b@      e.printStackTrace();@b@    }@b@    return result.toString();@b@  }@b@@b@  public boolean isNoMunge()@b@  {@b@    return this.noMunge;@b@  }@b@@b@  public void setNoMunge(boolean noMunge)@b@  {@b@    this.noMunge = noMunge;@b@  }@b@@b@  public boolean isPreserveAllSemiColons()@b@  {@b@    return this.preserveAllSemiColons;@b@  }@b@@b@  public void setPreserveAllSemiColons(boolean preserveAllSemiColons)@b@  {@b@    this.preserveAllSemiColons = preserveAllSemiColons;@b@  }@b@@b@  public boolean isDisableOptimizations()@b@  {@b@    return this.disableOptimizations;@b@  }@b@@b@  public void setDisableOptimizations(boolean disableOptimizations)@b@  {@b@    this.disableOptimizations = disableOptimizations;@b@  }@b@@b@  public int getLineBreak()@b@  {@b@    return this.lineBreak;@b@  }@b@@b@  public void setLineBreak(int lineBreak)@b@  {@b@    this.lineBreak = lineBreak;@b@  }@b@@b@  public ErrorReporter getErrorReporter()@b@  {@b@    return this.errorReporter;@b@  }@b@@b@  public void setErrorReporter(ErrorReporter errorReporter)@b@  {@b@    this.errorReporter = errorReporter;@b@  }@b@@b@  public static class DefaultErrorReporter@b@    implements ErrorReporter@b@  {@b@    public void warning(String message, String sourceName, int line, String lineSource, int lineOffset)@b@    {@b@      if (line < 0)@b@        System.err.println("[WARNING] HtmlCompressor: \"" + message + "\" during JavaScript compression");@b@      else@b@        System.err.println("[WARNING] HtmlCompressor: \"" + message + "\" at line [" + line + ":" + lineOffset + "] during JavaScript compression" + ((lineSource != null) ? ": " + lineSource : ""));@b@    }@b@@b@    public void error(String message, String sourceName, int line, String lineSource, int lineOffset)@b@    {@b@      if (line < 0)@b@        System.err.println("[ERROR] HtmlCompressor: \"" + message + "\" during JavaScript compression");@b@      else@b@        System.err.println("[ERROR] HtmlCompressor: \"" + message + "\" at line [" + line + ":" + lineOffset + "] during JavaScript compression" + ((lineSource != null) ? ": " + lineSource : ""));@b@    }@b@@b@    public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource, int lineOffset)@b@    {@b@      error(message, sourceName, line, lineSource, lineOffset);@b@      return new EvaluatorException(message);@b@    }@b@  }@b@}
<<推荐下载>>
  • (1) 阿里巴巴Java开发手册8种不同版本
  • (2) Web前端开发视频教程
  • (3) 30+明星讲师PPT课件分享一线大厂架构实战经验
  • (4) java开发_架构篇_视频资源分享_v2208
  • (5) java开发_高级篇_视频资源分享_v2208
  • (6) java开发_进阶篇(中级)_视频资源分享_v2208
  • (7) java开发_入门篇_视频资源分享_v2208
  • (8) 微信小程序开发视频1+167源码+实战demo等下载
  • (9) easy-shopping电子商务java源码(附脚本和安装文档说明)下载
  • (10) java常用的72份知名实用的电子书下载
  • (11) java开发性能优化资料整理大全(8份电子文档+3份实战优化)下载
  • (12) 9个常用的算法设计资料和100以上视频课件内容下载
  • (13) vue开发必备常用手册16件下载
  • (14) 21种不同技术集群方案(es、flink、redis、nginx、zk、lvs、kafka、mysql、k8s等)参考资料下载
  • (15) 20种技术代码规范(js/java/dba/阿里/华为/oracle/mysql等)参考资料下载
  • (16) 微服务五套资料(0-1,架构设计,springcloud,nacos等)下载
  • (17) 架构师(28知识图谱+3套简历模板+6套架构实战文档等)完整资料整理下载
  • (18) 大数据18套实战基础知识+8套简历模板下载
  • (19) 并发编程全套(7套+阿里巴巴+亿级实战等)实战资料下载
  • (20) Kafka九套学习整理知识点全套(面试+笔记+代码api+命令+容备等)资料下载
  • (21) java全套9个不同方向类型的面试题(基础+核心+大厂+架构师+近万套题库等)下载
  • (22) JAVA开发常用API帮助文档大全(超52种以上技术资料,高手必备)下载
  • (23) springcloud超详细139件全套学习实战资料( 视频课件+源码demo+文档资料等)下载
  • 更多推荐>>
  • <<热门文章>>