Javascript优化:什么工具可以压缩顺序字符串连接?

时间:2011-11-14 21:55:42

标签: javascript optimization string-concatenation

这是一个简化的示例,但我正在编写一个输出javascript的代码转换器。由于解析的方式,我必须输出片段。即我最终得到了一个类似于以下内容的javascript文件,但更长的时间:

function coolfunc() {
    var result = "";
    greet = function(user,town) {
        var output = '';
        output += 'Welcome ' + user + '!';
        output += 'How is the weather in ' + town + '?';
        return output;
    }
    goobye = function(user,town) {
        var output = '';
        output += 'Farewell ' + user + '!';
        output += 'Enjoy the weather in ' + town + '!';
        return output;
    }
    result += "Some output 1";
    result += "Some output 2";
    result += greet("Larry","Cool town");
    result += goobye("Larry","Cool town");
    return result;
}

是否有任何后处理器可用于将上述内容压缩成以下内容:

function coolfunc() {
    greet = function(user,town) {
        var output = 'Welcome ' + user + '!'+'How is the weather in ' + town + '?';
        return output;
    }
    goobye = function(user,town) {
        var output = 'Farewell ' + user + '!'+'Enjoy the weather in ' + town + '!';
        return output;
    }
    var result = "Some output 1"+"Some output 2"+greet("Larry","Cool town")+goobye("Larry","Cool town");
    return result;
}

如果它可以组合相邻的静态字符串连接,那将是肉汁。

我认为yuicompressor或者闭包编译器会这样做,但据我所知他们没有。


编辑:

到目前为止,评论似乎告诉我在翻译中这样做。我不认为这是最好的选择,因为它会使阅读翻译变得非常困难......类似于为什么人们会编写冗长的代码然后将其缩小以进行制作。

1 个答案:

答案 0 :(得分:0)

如果有人遇到此问题,看起来封闭编译器可以在修订版1576(http://code.google.com/p/closure-compiler/source/detail?r=1576)中处理此问题