理解“布局运行失败”错误记录

时间:2012-07-18 03:12:51

标签: debugging logging extjs extjs4 extjs4.1

我正在做一些图表工作,并且在图表上没有创建任何内容的情况下获得单行消息“布局运行失败”。调查这一点后,我发现我必须添加一些额外的脚本文件来生成涵盖here的日志文件:

  

布局失败

     

4.1中布局引擎的设计结果是可能的   用于导致布局运行失败的不正确配置(或错误)   完成所有计算。发生这种情况时,简单的布局   停止并且已刷新到DOM的部分结果是   一切都是可见的。在某些情况下,布局可能完成99%   失败可能未被发现或表现为轻微的视觉异常。在   在其他情况下,布局可能会提前失败并明确地保留用户界面   破坏状态(很像在布局期间的JS错误会在以前做过   的版本)。

     

诊断

     

如果您怀疑看到布局失败,那么第一步就是   启用布局诊断。这是通过替换法线来完成的   “ext-all.js”文件带有“ext-all-dev.js”并添加了一些额外的文件   脚本。

我添加了所需的脚本:

<script type="text/javascript" src="extjs/src/diag/layout/Context.js"></script>
<script type="text/javascript" src="extjs/src/diag/layout/ContextItem.js"></script>

现在我得到了我无法理解的诊断数据 - 它似乎没有诊断出错误:

++printer<autocontainer> - size: configured/shrinkWrap
    --statprint-1472<autocontainer> - size: configured/configured
        triggeredBy: count=1
            statprint-1472.containerChildrenDone:dom () dirty: false, setBy: ?
        --chart-1473<draw> - size: shrinkWrap/shrinkWrap
            triggeredBy: count=1
                chart-1473.containerChildrenDone:dom (true) dirty: false, setBy: ?
    ++panel-1474<dock> - boxParent: printer - size: natural/configured
    ++panel-1474<autocontainer> - boxParent: printer - size: natural/configured
    ++statprint-1472<dock> - size: configured/configured
        ++statprint-1472_header<body> [isBoxParent] - size: calculated/shrinkWrap
        ++statprint-1472_header<hbox> [isBoxParent] - size: calculated/shrinkWrap
            ++statprint-1472_header_hd<autocomponent> [isBoxParent] - size: calculated/shrinkWrap
            ++tool-1475<autocomponent> [isBoxParent] - size: configured/configured

是否有人知道解释诊断信息的位置?

3 个答案:

答案 0 :(得分:14)

我发现这些类型的错误通常以最快的方式解决,它采用注释直到离开的方法来隔离哪个组件配置导致布局失败。从里到外注释出子组件,用填充html配置替换它们,直到你将哪个组件归零导致失败,然后看看你可以放回多少,直到错误回来,你应该只看一些剩余的配置行,你可以针对文档/样本进行观察。

答案 1 :(得分:4)

我在我的应用中收到“布局运行失败”消息,发现问题是由忘记在我的Viewport.js文件中设置布局属性引起的。一旦我在那里定义了布局,一切都运行良好。 :)

示例:

Ext.define('MyApp.view.Viewport',{
   extend    : 'Ext.container.Viewport',

   layout  : 'fit',

});

答案 2 :(得分:3)

部分原因可归结为 -

  1. 过度使用(在布局中查找布局。某些布局嵌套组合会产生此错误)
  2. 容器缺少布局。
  3. 容器或其子容器缺少大小调整信息。对于 示例高度/宽度或弯曲。
  4. 在未在sass中定义的组件上使用ui配置。
  5. 要进行调试,我们应该调查抛出异常的视图中的布局。

    不幸的是,没有可用的文档。

    来源:Sencha支持