JavaScript代码压缩-js代码压缩-压缩JS
2011-01-11 14:55
459 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!--************************************************************************--> <!--* JavaScript Crunchinator Demo *--> <!--* *--> <!--* Copyright 2001 by Mike Hall *--> <!--************************************************************************--> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>JavaScript代码压缩-js代码压缩-压缩JS</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <mce:script type="text/javascript"><!-- var literalStrings; //临时变量. function crunch(f) { var input, output; var i; // 获得输入里的代码,处理并显示输出 f.elements.codeOut.value = ""; f.elements.statusMsg.value = "进行中..."; input = f.elements.codeIn.value; output = input; f.elements.statusMsg.value = "替换字符串..."; output = replaceLiteralStrings(output); f.elements.statusMsg.value = "去掉注释..."; output = removeComments(output); f.elements.statusMsg.value = "压缩空格..."; output = compressWhiteSpace(output); f.elements.statusMsg.value = "连接字符串..."; output = combineLiteralStrings(output); f.elements.statusMsg.value = "恢复字符串..."; output = restoreLiteralStrings(output); f.elements.statusMsg.value = "完成."; f.elements.codeOut.value = output; // Compute sizes. f.elements.sizeIn.value = input.length; f.elements.sizeOut.value = output.length; f.elements.sizeDiff.value = input.length - output.length; if (input.length > 0) f.elements.pctOut.value = 100 - Math.round(output.length / input.length * 10000) / 100; return false; } function replaceLiteralStrings(s) { var i, c, t, lines, escaped, quoteChar, inQuote, literal; literalStrings = new Array(); t = ""; // Split script into individual lines. lines = s.split("/n"); for (i = 0; i < lines.length; i++) { j = 0; inQuote = false; while (j <= lines[i].length) { c = lines[i].charAt(j); // If not already in a string, look for the start of one. if (!inQuote) { if (c == '"' || c == "'") { inQuote = true; escaped = false; quoteChar = c; literal = c; } else t += c; } // Already in a string, look for end and copy characters. else { if (c == quoteChar && !escaped) { inQuote = false; literal += quoteChar; t += "__" + literalStrings.length + "__"; literalStrings[literalStrings.length] = literal; } else if (c == "//" && !escaped) escaped = true; else escaped = false; literal += c; } j++; } t += "/n"; } return t; } function removeComments(s) { var lines, i, t; // Remove '//' comments from each line. lines = s.split("/n"); t = ""; for (i = 0; i < lines.length; i++) t += lines[i].replace(/([^/x2f]*)/x2f/x2f.*$/, "$1"); // Replace newline characters with spaces. t = t.replace(/(.*)/n(.*)/g, "$1 $2"); // Remove '/* ... */' comments. lines = t.split("*/"); t = ""; for (i = 0; i < lines.length; i++) t += lines[i].replace(/(.*)/x2f/x2a(.*)$/g, "$1 "); return t; } function compressWhiteSpace(s) { // Condense white space. s = s.replace(//s+/g, " "); s = s.replace(/^/s(.*)/, "$1"); s = s.replace(/(.*)/s$/, "$1"); // Remove uneccessary white space around operators, braces and parentices. //[/x21/x25/x26/x28/x29/x2a/x2b/x2c/x2d/x2f/x3a/x3b/x3c/x3d/x3e/x3f/x5b/x5d/x5c/x7b/x7c/x7d/x7e] //[!%&()*+,-/:;<=>?[]/{|}~] s = s.replace(//s([/x21/x25/x26/x28/x29/x2a/x2b/x2c/x2d/x2f/x3a/x3b/x3c/x3d/x3e/x3f/x5b/x5d/x5c/x7b/x7c/x7d/x7e])/g, "$1"); s = s.replace(/([/x21/x25/x26/x28/x29/x2a/x2b/x2c/x2d/x2f/x3a/x3b/x3c/x3d/x3e/x3f/x5b/x5d/x5c/x7b/x7c/x7d/x7e])/s/g, "$1"); return s; } function combineLiteralStrings(s) { var i; s = s.replace(/"/+"/g, ""); s = s.replace(/'/+'/g, ""); return s; } function restoreLiteralStrings(s) { var i; for (i = 0; i < literalStrings.length; i++) s = s.replace(new RegExp("__" + i + "__"), literalStrings[i]); return s; } // --></mce:script> </head> <body> <h3>JavaScript 压缩---<a href="http://www.css88.com/" mce_href="http://www.css88.com/" class="STYLE2">返回前端开发首页</a></h3><hr /> <div class="STYLE2" id="demoBox"> 这程序是由Mike Hall写的,JavaScript的压缩不是为了保护代码而压缩,而是压缩后的js代码文件可以小一倍甚至多倍,从而使这个js代码快速的下载到客户端,特别js文件较大时速度效果非常明显. <br /> <br /> 使用方法:<br /> 使用下面的表单,你可以浓缩JavaScript代码.只用将任何脚本代码粘贴到输入的文本框,压下 '压缩' 按钮,那浓缩的版本就出现在 '输出' 里. 然后你可以使用 '全选' 按钮,快速选中'输出'里的代码,剪切粘贴到一个新的源码文件.<br /> <br /> 3.JavaScript 格式化工具<a href="http://www.css88.com/tool/js_beautify/" mce_href="http://www.css88.com/tool/js_beautify/" target="_blank">http://www.css88.com/tool/js_beautify/</a></div> <p></p> <div style="width:1003px"> <div style="float:left" mce_style="float:left"> <form action="" onsubmit="return crunch(this)"> <table border="0"> <tr> <th colspan="3">输入</th> </tr> <tr> <td colspan="3"><textarea name="codeIn" rows="10" cols="80">
字节数:
状态:
输出 | |||
---|---|---|---|
字节数: | 减少: | % 减少率: |
大量的代码运行效率较低,cpu占用较高,请耐心等待!呵呵
1.保存好您的开发版本,便于以后修改维护;
2.压缩前,检查每一行代码确保以“;”结束;
3.if...else...语句加上“{}”,即如果你的i语句为
if(...)
...//一条语句
else
...//一条语句
请改为
if(...)
{...}//一条语句
else
{...}//一条语句
相关文章推荐
- 压缩的js代码在线还原
- js判断图片宽度并限制宽度和高度的javascript代码
- 压缩你的JS和CSS代码
- javascript[js]获取url参数的代码
- 高性能JS 非阻塞方式下载 JavaScript 用 XHR 对象下载代码,并注入到页面中
- js验证网址等Javascript常见验证代码合集
- javascript实现代码高亮-wangHighLighter.js
- javascript--给你的JS代码添加单元测试
- JavaScript基础:在HTML中插入js代码
- javascript分页代码实例分享(js分页)
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
- HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
- JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
- node.js 使用 UglifyJS2 高效率压缩 javascript 文件
- 【前端Js】高级加密解密标准AES加密(Javascript代码实现)
- 使用Google Closure Compiler高级压缩Javascript代码注意的几个地方
- C# Javascript引擎,如何在C#中执行现有的JS代码?
- 第一个JavaScript代码:JS
- Ant压缩js时,报错:java.lang.IllegalAccessError: tried to access class org.mozilla.javascript.DefaultErrorReporter
- 加载zip压缩的javascript代码以及在Egret H5实际应用