Optimization Qooxdoo应用程序的构建大小优化

Optimization Qooxdoo应用程序的构建大小优化,optimization,build,qooxdoo,Optimization,Build,Qooxdoo,我想对qooxdoo生成的文件执行一些大小优化。800Ko相当大。。。作为参考,它基于桌面方法 我正在使用此配置: "OPTIMIZE" : ["basecalls", "comments", "privates", "strings", "variables", "variants", "whitespace"] 没有成功 有什么想法吗?客户优化 这是最简单的方法。在web服务器中设置gzip压缩。它将使您的构建空间约为200-300KB。您甚至可以预压缩构建并直接为app.js.

我想对qooxdoo生成的文件执行一些大小优化。800Ko相当大。。。作为参考,它基于桌面方法

我正在使用此配置:

"OPTIMIZE"      : ["basecalls", "comments", "privates", "strings", "variables", "variants", "whitespace"]
没有成功

有什么想法吗?

客户优化 这是最简单的方法。在web服务器中设置gzip压缩。它将使您的构建空间约为200-300KB。您甚至可以预压缩构建并直接为app.js.gz提供服务

然后设置web服务器缓存。一种方法是配置合理的缓存过期时间,例如一周或一个月。对于更具攻击性的缓存,过期时间设置为永久年,构建URL看起来像/static/app.js?v=123。您可以使用简单的递增数字、VCS修订或文件哈希

部分构建 更难但更灵活的方法是将其与上面描述的客户优化相结合。通过这种方式,您可以按照按需加载组件的方式构建应用程序,而不需要预先加载所有内容。不过,这需要更改应用程序,使其更模块化,耦合性更低,这通常是件好事

在config.json中,您需要定义部分,即通常对应于不同功能的应用程序组件。我通常做这样的普通工作:

"common" :
{            
  "packages" :
  {
    "sizes" : 
    {
      "min-package"          : 64,
      "min-package-unshared" : 16
    },
    "additional-merge-constraints" : true,
    "parts" :
    {
      "boot" :
      {
        "include" : ["${QXTHEME}", "${APPLICATION}.Application"]
      },
      "functionality1" :
      {
        "include" : ["${APPLICATION}.controller.Functionality1"] 
      },
      "functionality2" :
      {
        "include" : ["${APPLICATION}.controller.Functionality2"] 
      },
      ...
    }
  }
}
这里的引导部分包含引导应用程序所需的最小Qooxdoo依赖项。请注意,启动部分的未压缩大小不可能小于500 kB

然后,当您想要使用某些功能时,请执行以下操作:

qx.io.PartLoader.require(['functionality1'], function()
{
  new (qx.Class.getByName('app.controller.Functionality1')).doSomething();
}, this);

请注意,零件加载器为您解析依赖项,因为零件功能1可能有其依赖项。事实上,上面定义了3个部分的部分构建可能会导致结果中的文件少于或多于3个。生成器使用复杂的依赖关系管理,因此如果有利于负载性能,它可以拆分和折叠部分。

您使用的优化配置是默认配置。因此,在运行./generate.py build时,您应该已经获得了一个优化的构建。查看build/script/{myNamespace}.js。脚本的第一部分——所谓的管理或加载代码——没有优化,但框架代码和应用程序代码在最后优化了一长行,这是缩小的等等

该手册有更多细节:


使用qooxdoo,您只有两个不是图片的可部署文件:index.html和script.js。如果你的script.js是800K,我会说你的应用程序相当大。如果没有完整的配置文件,很难说为什么优化不适合你。查看创建的script.js。如果它看起来不是完全胡言乱语,那么优化就没有应用。OTOH,我的经验是,真正适合qooxdoo桌面应用程序开发模型的qooxdoo应用程序通常会增长到大约2MB以上,因为您添加了更多的小部件和qooxdoo类,然后,在添加特定于应用程序的类时,只会缓慢地进一步增长。如果800K对您来说太大,请做一个实验。考虑使用一种更传统的方法编写HTML模板、CSS和JS,使用jQuery、JQuery、JQuery插件、主干、需求等。然后把所有的尺寸加起来。我会很惊讶,如果你真的为你使用的所有qooxdoo组件都包含了等价物,那么结果会更小。