Nar*_*rma 6 javascript java velocity
我在java中使用velocity生成JavaScript代码.
例如:我生成了JavaScript并得到了以下字符串:
importClass(java.util.ArrayList); function fun(arg) { if (true){ return true;} else{ return true;}}
Run Code Online (Sandbox Code Playgroud)
是否有任何Java API采用此String并以下面的方式格式化此JavaScript:
importClass(java.util.ArrayList);
function fun(arg) {
if (true){
return true;
}
else{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 Google 的Closure Compiler。
它格式化、压缩、优化并查找 JavaScript 代码中的错误。
要快速了解它的功能,您可以尝试 Web 服务。
对于您的示例字符串,
importClass(java.util.ArrayList); function fun(arg) { if (true){ return true;} else{ return true;}}
Run Code Online (Sandbox Code Playgroud)
如果您只想格式化它,请使用编译选项“Whitespace only”和“Pretty print”,它返回:
importClass(java.util.ArrayList);
function fun(arg) {
if(true) {
return true
}else {
return true
}
}
;
Run Code Online (Sandbox Code Playgroud)
无论如何,使用 Closure 编译器,您有多种选项来优化和/或格式化输入代码(以字符串或文件 URI 形式给出),并将优化/格式化的 JS 作为字符串返回或将其保存到文件中。
我真的推荐使用“简单”优化模式。对于较长的 Javascript,它确实可以为您节省大量不需要的字节。另外,它还可以加快脚本执行速度!
对于您的示例字符串,编译选项“Simple”(而不是“Whitespace only”)和“Pretty print”返回
importClass(java.util.ArrayList);
function fun() {
return!0
}
;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,两个函数的结果fun()是相同的(布尔值true)。
然而,第二个已经删除了所有无用的代码(通过保留有效性!)并且执行速度会更快。
现在,实际的编译器是用 Java 编写的,并且可以作为命令行实用程序进行下载(更新 2014-07-10:新的下载链接)。
作为第二个选项,您可以实现自己的包装类来与 REST API 进行通信(就像我对 PHP 所做的那样)。不需要太多的努力/代码。
更多信息请参见:
Google 代码项目页面
入门常见
问题解答:如何从 Java API 调用 Closure Compiler?
REST API 参考
希望有帮助。
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |