Ext 3.1: メモリ問題の大幅な改善(IE)と新しいUI部品

2009/12/18 by yuki

昨日Ext JSの最新バージョン3.1がリリースされました。7月に3.0がリリースされて以来(メンテナンスリリースがいくつかありましたが)のリリースとなります。今回のリリースではパフォーマンスを改善するための大幅なコードの見直しと、これまで多くのリクエストをいただいていたUI部品がいくつか追加されています。

これまで3.0で様子見をされていた方は、3.1を是非試してみてください。

Internet Explorerでのメモリ問題の改善

Ext JSを利用したアプリケーションは、国内外を問わず企業内で利用されるケースが圧倒的に多いため、IEで利用される割合が必然的に高くなっています。また、Ext JSアプリケーションの特徴として「多数のDOMが1ページに組み込まれている」、「ページ遷移が無い(リフレッシュされない)」、「比較的長時間利用する(同じオブジェクトが繰り返し利用される)」といったことがあげられます。

IEにおけるDOMやJavaScriptオブジェクトのメモリリークは広く知られている問題ですが、上記のようなExt JSアプリケーションの特徴から、Ext JS2.xの時代には多くのメモリリークの報告・相談が寄せられいました。これらを解決するために、Ext JS3.0では、DOMおよびDOMイベントの管理方法の大幅な見直しを行い抜本的な改善を図りました。

今回のExt JS3.1ではさらにJavaScriptオブジェクトそのものが時間の経過とともにリークを起こしてしまうというIE特有の問題を解決するための見直しを行っています。この結果として、長時間利用しているとアプリケーションの反応が遅くなる(そのうち反応しなくなる)といった症状が改善されています。

レイアウト処理の最適化

Ext JS3.0において多くのコンポーネントがContainerのサブクラスとして再定義されました。結果として、より複雑なレイアウトやインターフェースをより簡単に実現できるようになったのですが、Containerでは必ずレイアウトの計算処理が行われてしまうためパフォーマンス的な部分で問題が発生することも起こりました。

Ext JS3.1ではこれらのレイアウト処理のうち重複している部分をできるだけ取り除くことにより最適化を行っています。さらに、複雑なレイアウトを構築する際に、各ContainerのdoLayoutが無駄に再帰的に呼ばれてしまいパフォーマンス的にボトルネックになっていた問題も解決しています。

イベント処理の見直し

イベントのキャッシュ方法についても大幅な見直しが行われたため、大規模なアプリケーションにおいては、レスポンス的な部分において大幅な改善が期待されます。

拡張性の改善

Ext Coreが切り出された際に、コア部分の多くのメソッドがプライベート化されてしまったため拡張性が損なわれた、といった多くの開発者からの声がありました。今回、それらの一部をパブリック化することにより拡張性を改善しています。

新しいUI部品

上記の「目に見えない」改善だけではなく、これまで要望が多かった下記のUI部品を追加しています:

TreeGrid

TreeGridはTreePanelとGridPanelを組み合わせたようなパネルです。TreeGridそのものはTreePanelを継承したクラスとなっています。また、TreePanelやTreeGridで扱うツリー形式のデータ構造を扱うためのTreeStoreについても現在開発中でExt JS3.2でリリースする予定です。

TreeGrid

LockingGrid

LockingGridViewとLockingGridColumnModelの組み合わせで実現する機能で、グリッドを左右にスクロールする際に指定した列をExcelのように「固定」しておくことが可能になります。

Grid Locking

ColumnHeaderGroup(プラグイン)

グリッドの複数の列をグループ化することを可能にするプラグインです。各列はグループ単位で、あるいはグループ内においてドラッグ&ドロップで再配置が可能です。

Grid Column Grouping

最後にExt Designerですが、勉強会等で3.1と同時にリリースされる、とお話をしていましたがどうやら年明け、春先、にずれ込んでしまったようです。残念。

3 Responses to “Ext 3.1: メモリ問題の大幅な改善(IE)と新しいUI部品”

  1. ExtJS 3.1 リリース - 蜘蛛の糸をつむぐには…

    [...] Ext 3.1: メモリ問題の大幅な改善(IE)と新しいUI部品 結構いろいろ更新されてますね。 IE6への対応は助かります。 [...]

  2. ExtJS3.1がリリースされました | ExtJSで楽しくRIA業務アプリ開発

    [...] 詳しくは、ExtJS3.1の紹介を御覧下さい。 [...]

  3. MT22のメモ帳 - Ext JS 3.1リリース

    [...] 詳細はこちら [...]

コメントをする

ロボットによるスパムを防ぐために、次の質問にご回答ください:



© 2006-2010 Ext Japan, LLC