Ext JS 3.1:大幅度改进内存管理、TreeGrid……

Ext JS 3.1: Massive memory improvements, TreeGrid,
and more

December 17, 2009 by Jamie Avins

我谨代表Ext团队,相当地高兴地宣布这次Ext JS 3.1
的发布。我们力求在这次发布的版本中使得Ext的性能与功能都呈现最佳化。在download
页面中可找到full
change log

online documentation
中文版地址
)。

IE内存的改进

越来越多复杂的单页面Web程序出现,使得各种浏览器的内存管理问题就显得更为关键。在Ext 3.1中,尤其是对付IE6或以上版本的,我们都实现了一系列针对内存泄漏的解决方案。

DOM泄露

引用DOM对象而泄露是导致性能变差的最大原因之一。Ext 3.1经过大幅度的重构后使得那些组件可以“聪明”地移除掉DOM引用,当然Ext
Core

也是包括在内的。结果就是,当移除IE元素时,那些孤立的节点也会被清除干净(IE6/7 FORM
标签的不幸!
)。

JScript引擎的泄露

令人相当意外的是,那怕是一个普通的JavaScript对象也会引起内存泄露,新的IE8也如此。全体版本的IE都有一个毛病,就是糟糕的JavaScrit对象现实,表现为,用对象作为缓存的时候(我们经常如此使用着的)内存会可怕地泄露。到IE9可能会修正该问题,不过有见及此,3.1采用了统一ElementCache的机制较好地修缮这个问题,解决办法就是在IE 中刷新garbageCollection。某些测试中我们录得50倍的内存缩减,就在长期跑着的单页面程序中。

 

布局的优化

3.0中一些组件就重构为容器
,使之具备复杂的动态接口。在3.1版本中,我们又检查了布局其中的一些过程,进行优化,砍掉冗余的布局计算过程。调整布局之后,就会中止子容器的调整,以防止前一版本可能出现的“布局风暴(Layout
Storm)”,避免大动干戈。3.1中销毁一个组件就是从容器中移除它,从而大大地改善了性能和优化了其他旧版调用的函数。

EventManager重构

The EventManager

以及所属的core适配器已经进行完整的重构,减少了一些代重复和低效的代码。之前的事件缓存已经改进为更快和更一致的体验。对于复杂的容器,带来的好处便是响应时间上的改进。解构过程中的元素/组件期间的事件缓冲和延时,已经移除掉了,防止不必要的事件被执行了。

改进的灵活性

现在可以用SVN的respository
访问Ext
Core

了。那时候的Core还有许多方法是private的,难以扩展。Ext论坛
有人希望灵活性能够高一点,所以我们更新了3.1,许多方法变为公开的prototypes。Ext.each也在大多数的内置底层中展开(unrolled),结果就是许多任务的效率是提升的了。

新的组件

在3.1有效提升的同时,我们也乐于释出一些最新的可视化组件以下是3.1中需求较高的组件或加强组件:

新的TreeGrid扩展

新的TreeGrid组件
为复合列表创建完美的解决方案——组合了Grid
的威力(排序、展示额外的信息)并囊括了Tree
UI所带来的灵活性。TreeGrid为TreePanel的代码优化的扩展。我们当前还在研发TreeStore,以支持层次结构的数据结构,将在3.2中出现。这是一个需求最旺盛的组件之一,现在可以给大家使用了,我们自然很开心。

Grid列锁定

列锁定重新以 LockingGidView/LockingColumnModel
扩展的姿态回来,用户可以指定某些水平方向移动时,这些列不动。

Grid分组列的插件

新的ColumnHeaderGroup
插件,组织起列来会更加轻松。列可以在一组中渲染,有更高的灵活性。

小结

3.1有新的IE优化算法、全体性能的改善和新的功能加入到其中。我们认为这些加强内容会较大地改善阁下您产品的生产力。我们也在努力的打造Ext
Designer

,希望来着几个月可以展出。请马上更新你的版本
并查阅新的哪些功能适合您!

时间: 2024-09-26 18:09:08

Ext JS 3.1:大幅度改进内存管理、TreeGrid……的相关文章

《Ext JS实战》——第1章 独特的框架 1.1 认识Ext JS

第一部分 Ext JS介绍 欢迎阅读<Ext JS实战>,本书是对Ext JS世界的深度之旅.在本书中,不仅要学习如何利用Ext JS框架完成各种任务,还会学习构成框架的各种组件和部件之间的差异. 通过第1章到第3章的学习,我们能够对框架的基础部分有必要的理解.我们的旅途从第1章正式起航,在第1章会学习框架的基础知识.第2章是"热身"章,会了解一些能让应用程序正确运行的关键要素.第3章会涉及框架的一些内部机制,例如组件模型和容器模型. 学完这一部分后,就可以探索Ext JS

Ext JS 6 驾临

是的,Ext JS 6 就要来了! 统一一份代码 Ext JS 6 最大的改变,莫过于就是将 PC 端与移动端的代码统一起来,务求采用相同 API 来开发不同平台的客户端界面,这样无论桌面.平板和手机都是使用同一个 JavaScript 框架:Sencha Ext JS 6.也就是说,两者整合在一起啦~于是你写一份代码,就可以"到处运行",这样开发效率不是很高吗? 有码有真相~Ext JS 6 早期体验版本现正可以下载: http://cdn.sencha.com/ext/beta/e

JS 内存管理

内存管理-转载 平时投入业务逻辑比较多,有段时间没有关注这些底层的知识了,看完之后,感觉再也不能愉快地写js了.之前倒是关注js语言自身语法陷阱多一些,开发过程中通过JSLinter 或 Eslinter等工具,基本可以避免这些问题,不过倒是很少关心js内存管理等这方面的内容,幸运的是,从2012年起,所有现代浏览器都使用了标记-清除垃圾回收算法,对我这种对这些方面关注比较少的同学来说算是命好了- 不过跟前同事交流时,说是以前老旧的浏览器(指老的IE)可能有内存泄漏,例如给dom元素绑定了事件,

php5.2.0内存管理改进_php技巧

php5.2.0的内存管理做了较大的改进,某些情况下内存不能释放的问题不存在了.测试php脚本(mem.php),我用echo N>>和sleep来控制脚本在某个阶段暂停以便检测状态. 复制代码 代码如下: <?php  echo '1>>';  sleep(5);  $o = array();  for ($i=0;$i<=100000;$i++) {      $o[]='aaaaaaaaaaaaaaaaaaaaa';  }  echo '2>>'; 

介绍Ext JS 4 MVC给Web开发带来的变化

文章最后将与大家一起讨论作者在运用过程中碰到的问题以及解决办法,并提出 MVC 需要进一步完善的地方. Ext JS 4 目前是 Sencha 的产品,4.x 的正式版本号是 4.0.7.Ext JS 4 提供商业版本,但如果您的项目是开源的,则可以http://www.aliyun.com/zixun/aggregation/17944.html">免费使用 Ext JS 4.Ext JS 的论坛目前非常活跃:Ext JS 还在不但地升级改进,据 Sencha 官方统计,使用 Ext J

《Ext JS 4 First Look》翻译之一:新特性

第一章 新特性   Extjs 4相对于之前的版本作出了重大的修正.其中包括全新的类系统.新平台的引入.API的修整和加强还有新组件的引入(如新的图表和图形组件).Extjs 4提供更快速.更稳定的用户体验,并且让开发人员更容易上手. 在本章我们将学习到下列内容: 1.1. 入手Extjs 4 1.1.1. 包和命名空间的改进 1.1.2. API文档的使用(日后经常和它打交道) 1.2. Extjs新平台的架构 1.3.  Extjs 4的类系统 1.3.1. 类定义与对象实例化 1.3.2

《Ext JS 4 First Look》翻译之五:Grid、Tree和Form   

5.1. Grid panel      Grid应该是我们在开发时使用的最多的组件之一.Extjs4对其进行了重大的改进.      Extjs4与Extjs3的Grid生成不同的HTML.Sencha称其为智能渲染(Intelligent Rendering).Extjs3中即使不需要Grid的所有特性,它也会生成整套HTML.而Extjs4就只会渲染Grid所用到的特性,这样就使 渲染最小化且提高了性能.      在学习Extjs4中Grid的新特性前,让我们先了解在Extjs4中如何创

《Ext JS 4 First Look》翻译之五:Grid、Tree和Form

<Ext JS 4 First Look>翻译之五:Grid.Tree和Form      至此我们已经学习了Data包和布局等API.下面我们来学习作为Extjs框架中我们用得最多的用来展现数据的Grid.Tree和Form吧! 目录: 5.1. Grid panel 5.1.1. Columns 5.1.2. Feature 5.1.2.1. Ext.grid.feature.Grouping 5.1.2.2. Ext.grid.feature.Summary 5.1.2.3. Ext.g

《Ext JS实战》——1.4 Ext JS 3.0的新特性

1.4 Ext JS 3.0的新特性 Ext JS 2.0中引入的一些变化是颠覆性的,这就导致从级到2.0相当困难.这主要是因为这一版引入了一个更加现代的布局管理器以及一个崭新的.健壮的组件层次,许多Ext JS 1.x的代码都会因此而崩溃.值得庆幸的是,由于Ext JS 2.0的良好的工艺设计,从Ext JS 2.0到3.0的移植就非常容易了.尽管Ext JS 3.0新增的内容并不怎么神奇,不过最新的版本还是可圈可点的,有些新增的特性还是值得讨论的. 1.4.1 Ext JS通过Direct完