我想将一个命名空间中的所有类合并到一个文件中,而不是分别加载它们。是的,我知道加载器不应该在生产环境中使用,但是这些命名空间很少使用。
假设我有命名空间
App.Employee.*
我现在想App.Employee
在一个文件/请求中加载整个命名空间。对我来说,这听起来应该是可能的,但我没有设法让它工作,因为加载器正在寻找一个名为App.Employee
.
那么这可能是开箱即用的,还是理论上可能的,还是根本不可能?
最好的方法是构建您的应用程序,包括使用较少的部分。如果您的应用程序会预先加载 20 或 30 秒,这并不重要,但稍后延迟可能会更加明显和明显。Sencha Cmd 可以帮助你。
If you still think your app can benefit from dynamic loading, use Ext.Loader.loadScript
. It has callback
parameter that kicks in when the script in question is loaded, which gives you an action point. The script shouldn't necessarily be an Ext class, any JavaScript will do - including a part of application in compressed form.
您可以将所有命名空间 App.Employee.* 收集到一个文件 /App/employee.js 中,然后在需要时使用文件完整路径加载它。
Ext.require("/App/employee")
升级版。我也发现了一些问题。Ext.loader 不要等待employee.js。当employee.js 中的类具有依赖关系时,它会抛出异常。试试Ext.syncRequire("/App/employee")
吧。它在我的测试中运行良好。
并且不要忘记声明文件的完整路径(来自您的 webroot)。