ExtJS应用程序在调试和缩小模式下的不同行为
Different behavior of ExtJS application in debug and minified mode
我目前正在开发的web应用程序中遇到了一个奇怪的行为。该接口完全是用ExtJs 4构建的。该应用程序有两种模式,调试和生产
在调试模式下,当用户单击菜单项时,我会同步加载依赖的Javascript文件。类似于以下内容:
for ( var i = 0; i < config.dependency.length; i++ ) {
var element = document.createElement('script');
element.onload = callback;
element.onreadystatechange = function () {
if ( element.readyState == 'loaded' || element.readyState == 'complete' ) {
callback();
}
};
}
模块的一个javascript文件如下所示:
module.js
Ext.define('Company.view.system.Module', {
extend: 'Company.view.abstract.Panel',
alias: 'widget.system.module',
/**
* These "_items" are built into the Object in `Company.view.abstract.Panel`
* using: Ext.create(this._items[i].clazz, conf);
*
* I'm just omitting the whole business logic there
*/
_items: [{
flex: 2,
clazz: 'Company.view.system.module.Form'
}, {
flex: 5,
clazz: 'Company.view.system.module.HtmlEditor'
}]
});
Ext.define('Company.view.system.module.Form', {
extend: 'Company.view.abstract.Form',
alias: 'widget.system.module.form',
items: [{
xtype: 'fieldset',
title: 'Module Grid',
items: [{
xtype: 'system.module.grid'
}]
}]
});
Ext.define('Company.view.system.module.Grid', {
extend: 'Company.view.abstract.Grid',
alias: 'widget.system.module.grid',
columns: [{
...
}],
afterLayout: function() {
this.callParent(arguments);
alert('after layout');
}
});
Ext.define('Company.view.system.module.HtmlEditor', {
extend: 'Company.view.abstract.HtmlEditor',
alias: 'widget.system.module.htmleditor',
...
});
调试模式下一切正常。但在生产模式下,我在启动时(即在渲染ViewPort之前)将整个模块加载为单个生成的缩小模糊javascript文件(Modules.js),而不是在菜单单击事件之后加载依赖模块
在生产模式中,使用"xtype"(上面示例中的Company.view.system.module.Grid)实例化的每个Items根本不会渲染
调试模式和生产模式的屏幕截图
你认为这里发生了什么事,而我却不知道?
更新:问题在于GridPanel的Height
,因为它是在运行时根据浏览器的屏幕大小计算的。因此,在实例化组件时,尚未计算高度!愚蠢的错误:)
在system.module.form.
我建议不要有两个不同的版本。你这样做的原因是什么?
相关文章:
- Pinterest API应用程序处于开发模式(因此我可以使用http重定向)
- InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话
- 为什么我的UI应用程序嵌套在引导模式中时无法工作
- 使用中介pub/sub模式时路由骨干应用程序
- 用于登录/注册Angular应用程序的模式/对话框
- 我如何创建一个Chrome应用程序,有效地充当信息亭模式下的启动页面
- IFRAME和谷歌应用程序脚本中的NATIVE模式
- 如何在node.js控制台应用程序中应用模块模式
- 我可以使用emscripten在i386模式下编译应用程序吗
- 在 Node.js 应用程序中包装记录器的设计模式
- 如何在轨道应用程序上首次访问站点触发弹出模式
- 输入模式应用程序状态,直到下次使用 Jquery 单击
- 如何使用PhoneGap + Cordova在Android应用程序中启用横向和纵向模式
- 在iPhone的删除模式下应用程序抖动的算法
- Angularjs模式窗口在我的应用程序中的实现
- 应用程序以垂直模式打开,而不是以水平模式打开
- ExtJS应用程序在调试和缩小模式下的不同行为
- Spotify应用程序API:检测离线模式
- 需要帮助在Telescope流星应用程序中创建一个javascript或类似引导程序的弹出模式来提交表单
- 我需要使网络应用程序作为窗口全屏应用程序工作.在IE-11(最后一个)为PC(WIN-7),全屏模式,用一个按钮关闭它