zoukankan      html  css  js  c++  java
  • 【译】ExtJS 4.1 beta发布

    原文:http://www.sencha.com/forum/showthread.php?164313-Ext-JS-4.1-Beta-1-Now-Available


          我们非常高兴现在可以在社区发布Ext JS4.1.0 Beta 1!此版本已修复上百个错误。作为第一个测试版,有几个问题,我们想解决,但我们最后决定,它们并不是关键问题,足以延迟新版本的发布。这些都是已记录在发行说明文件部分的已知问题。

          你可以在这里下载ExtJS 4.1 beta: http://cdn.sencha.io/ext-4.1.0-beta-1.zip

          我想花一点时间来讲述已更改的内容。其中一些相对于4.1 PR1是新的,而其他是在4.1 PR1引入但并未涉及的。

          对于其他细节参阅我的博客文章http://www.sencha.com/blog/whats-new-in-ext-js-4-1/   (译文:http://blog.csdn.net/tianxiaode/article/details/7045353

          布局

          失败

          4.1的布局引擎设计,会因配置不当或错误而导致布局运行未能完成其所有计算。当发生这种情况时,布局会简单的停止并将部分结果刷新到DOM中。布局在某些情况下,可能只完成了99%的计算,从而造成不被发现的错误或出现轻微的视觉异常。而在其它情况下,可能会过早失败,从而导致一个明显破碎状态的UI(很象以前版本中在布局过程中产生yieldJS错误)。

          (译者注:这是严重问题啊)

          诊断

          如果你怀疑布局失败了,第一步要做的是做布局诊断。要完成这个工作,使用“ext-all-dev.js”替代“ext-all.js”,并添加两个额外的脚本文件,代码如下:

        <script type="text/javascript" src="/extjs41/ext-all-dev.js"></script>
        <script type="text/javascript" src="/extjs41/src/diag/layout/Context.js"></script>
        <script type="text/javascript" src="/extjs41/src/diag/layout/ContextItem.js"></script>  


          显然,ExtJS 4.1的路径会因你的环境而有所不同。上述修改,可在Firebug或Web Inspector的控制台中看到诊断日志。如果是IE,日志会存储在内存中,可在页面加载后,在地址中输入以下命令显示:

        javascript:void(Ext.log.show())  

          这可以创建一个“书签”。日志被限制为750行,你可以按照以下代码进行修改:

        <script type="text/javascript" src="/extjs41/ext-all-dev.js"></script>
        <script type="text/javascript">
            Ext.log.max = 1500;
        </script> 

          模型和idProperty

          模型一个共同的配置错误就是没有指定一个合适的“idProperty”。这个属性是用来标识模型主键的,但这很容易被忘记。因为“idProperty”的默认值为“ID”。在4.0,如果模型没有相同名字的字段,早某些情况下会产生JS错误。在4.1已修正这个错误。如果没有定义这个字段,会自动定义该字段为字符串属性。

          该错误的修复也产生了另外一个问题,你会发现模型多了一个“id”属性。最好的解决办法是正确配置“idProperty”属性的值。

         字段及它们的布局

          在ExtJS 4.1 PR1以及现在的beta 1,字段和字段布局都进行了几次内部修改。在讲述这个之前,我首先要介绍的是与字段渲染有关的几个新配置项。我们和几个客户讨论过,需要替换字段的渲染逻辑(如“renderTpl”、“fieldSubTpl”或“labelableRenderTpl”)以实现他们应用中的基本调整。在这期间,从4.0以来,这些属性已经在内部被重写及修改几次了。我们想提供一个更稳定的方式来添加字段而不是继续这个周期。

           在Beta 1,我们增加了几个“微”渲染模板去装饰字段。通常,这些都是简单的标记字符串,但它们完全支持XTemplates。这些装饰如下:

          Fields: inputAttrTpl
          Labelable: beforeLabelTpl, afterLabelTpl, beforeSubTpl, afterSubTpl, beforeLabelTextTpl, afterLabelTextTpl and labelAttrTpl
          Checkbox: beforeBoxLabelTpl, afterBoxLabelTpl, beforeBoxLabelTextTpl, afterBoxLabelTextTpl, boxLabelAttrTpl
          HtmlEditor: beforeTextAreaTpl, afterTextAreaTpl, beforeIFrameTpl, afterIFrameTpl, iframeAttrTpl

          在/examples/form/dynamic.html和/examples/form/contact-form.html这两个示例,会演示如何使用“afterLabelTextTpl”来渲染一个简单的“必填字段”。它们在渲染中的作用可从名字中看出来。如果想了解更详细的信息,可阅读fieldSubTpl或labelableRender的相关文档。如果需要其它有用的装饰,请告诉我们。

          在4.0和4.1 PR1,字段布局的定位、浮动及尺寸的平衡与微妙的时机依赖相当的复杂。在Beta 1,字段布局已经进行了广泛的修改。为了支持IE6,使用了表格。这一直存在一些计算要求,典型如高度,通过这种方法消除了以前在每个字段中进行的大量计算和测量,这迅速提高了速度。

          面板折叠

          在4.1 PR1,面板折叠是完全统一的。而在4.0,面板折叠是根据不同情况进行处理的。如在Accordion或者Border布局,这些布局会让折叠处理异常复杂。这些更改对大多数应用程序造成的影响不大,不过对于动画或自定义的折叠属性,则很重要。

          遮蔽

          遮蔽现在只用于共享的模态窗口。非浮动或非模态组件现在需要创建它们自己的遮蔽。在元素中使用Ext.LoadMask已过时,建议使用Ext.dom.Element的mask和unmask方法,该方法一直可以使用。

          遮蔽管理在组件调整大小和隐藏时已得到改进。

          拖放

          在4.1 Beta 1,DragDropManager现在会查询z-index去识别最顶层的拖动目标。而这可解决有多个拖动目标重叠的问题,不过这会影响到自定义拖放的处理。

         海王星

         在博客中有许多关于海王星主题预览的问题。在这里澄清一下,海王星在ExtJS 4.1只支持现代浏览器(非IE)。如果需要支持IE,海王星将不是一个合适的选择。

          小结

          我们希望倾听到你在使用beta版时的任何问题。在这一点上,我们确实需要听到与兼容性有关的问题。我们的目标是尽可能为4.0提供向后兼容。

         请记住,当发布一个问题或者错误时,一个测试用力总是有助于加快这一过程。请参阅http://www.sencha.com/forum/showthread.php?138165-How-to-report-a-bug


  • 相关阅读:
    C语言探索之旅 | 第二部分第十一课:练习题和习作
    C语言探索之旅 | 第二部分第十课: 实战"悬挂小人"游戏答案
    C语言探索之旅 | 第二部分第九课: 实战"悬挂小人"游戏
    C语言探索之旅 | 第二部分第八课:动态分配
    C语言探索之旅 | 第二部分第七课:文件读写
    最近迫切应学的编程语言
    C语言探索之旅 | 第二部分第五课:预处理
    封装axios方法之一
    react前置路由守卫
    React Router 4.0 实现路由守卫
  • 原文地址:https://www.cnblogs.com/hainange/p/6334273.html
Copyright © 2011-2022 走看看