运行时:
python generate.py source-all
我在我的应用程序中获取了所有库。这一切都很好。
运行应用程序时,qooxdoo会分别加载所有类。
我想使用qooxdoo作为在线开发工具,最终只能运行构建。此外,当在开发模式下运行服务器和客户端时,它在分别加载每个类qooxdoo时运行缓慢。
我是否可以在服务器软件库文件夹中包含http://cdnjs.cloudflare.com/ajax/libs/qooxdoo/4.1/q.min.js或本地副本,并且仅用于开发:
python generate.py source
答案 0 :(得分:2)
首先,我想澄清这些条款,因为我觉得有些含糊不清。
Qooxdoo生成器的执行单元是作业,例如 info 作业被调用为./generator.py info
。参与依赖关系管理的工作(查找应用程序类如何依赖于应用程序,框架和第三方库中的其他类)会生成目标。目标可以包括原始类(按完整路径),构建部分(可以优化的级联类集合,可选地加上一些元数据和数据),或者两者的混合。目标由网络浏览器通过 loader 加载。
源目标作业是开发依赖管理的手段(编写代码)。有三个这样的。
使用 source 作业,应用程序的所有类都采用其原始源格式,并且文件直接从文件系统上的原始路径加载。
目标仅包括来自应用程序,框架和库的实际依赖性。所有类按原样加载(数百个请求)。您甚至可能在某些浏览器中从file://
加载问题时遇到加载问题(例如,等待加载时间不够长的测试运行器)。
source-all 将包括所有已知的类,无论它们是您的应用程序的一部分,qooxdoo框架,还是您可能正在使用的任何其他qooxdoo库或贡献。
目标包括应用程序,框架和声明库中的所有存在类。所有类按原样加载(数百个请求,超过源作业)。比 source 作业更多的加载问题。
source-hybrid 作业将构成应用程序的类的内容连接成几个
文件部分,只留下您自己的应用程序类。将其他类文件(框架,库,contrib)组合在一起,您可以获得几乎构建版本的加载速度,同时保留您自己的应用程序文件的可访问性以进行调试。
目标仅包括来自应用程序,框架和库的实际依赖性。所有非应用程序类都连接成部分(十二个或两个)。按原样加载应用程序类,其余部分从部分加载。提供最佳的装载性能。
只有一个构建目标作业build
。但是,根据配置,它可以生成单文件构建或partial(多文件,通常是几个文件)构建。与源目标不同,构建目标文件经过优化(缩小)并用于生产部署。
用于在线开发的示例应用程序playground(SDK中的application/playground
)。让我们看一下config.json
的相关工作。
"playground-compile" :
{
"extend" : [ "libraries" ],
//...
"include" :
[
"${APPLICATION}.*",
"qx.*"
],
"exclude" :
[
"qx.test.*",
"qx.dev.unit.*",
//..
],
//...
},
"build-script" :
{
"extend" : [ "playground-compile" ],
//...
},
"source" :
{
"extend" : [ "playground-compile" ],
//...
}
正如您在上面所看到的,对于这两个目标,所有qooxdoo类(测试和开发类除外)都包含在内,因此您可以在游乐场片段中使用它们。一般来说,这是你的情况。其余的取决于您拥有的在线开发类型以及您对它的要求。您可以将其基于 source-hybrid (更易于调试)或构建目标(加载速度更快)。你可以混淆一些自定义配置,基于游乐场的配置。
需要注意的一件重要事情是,如果您计划的代码明显比游乐场代码段的情况要复杂得多,这些代码段由彼此依赖的多个类实现,您需要自己处理依赖项管理(即以正确的顺序加载类)。如果你的"在线"代码处理框架的一个子集,例如使用表格数据,仅包含子集(例如qx.ui.table.*
而不是qx.*
)是有意义的。对于您的信息,playground的单文件构建目标是2.1MB(约550kB gzip)。
q.min.js
是qxWeb。它是类似jQuery / jQueryUI的库。基本上,从应用程序开发的角度来看,qxWeb已经注意到了正常的Qooxdoo流程。
答案 1 :(得分:0)
使用source-all创建的构建单独加载每个类,框架和应用程序类 - 即它逐个加载数百个框架类(上次我检查时,它还加载了框架类,而不是由应用程序代码)。
作为一种解决方法,框架开发人员创建了作业源混合。这个作为source-all工作,但创建并加载所有框架类的串联,而不是单独的每个类(我认为它也缩小了框架类)。使用source-hybrid而不是source-all可以显着提高加载速度。
(最好的是框架开发人员为build *作业添加一个选项以生成源地图。但到目前为止,这还不在生成器中。)