Blog

New Ext JS Releases for Performance and IE9 Support: 4.0.2 and 3.4

June 09, 2011 | Ed Spencer

Ext JS 4.0.2 and Ext JS 3.4.0 released today Today we’re releasing two new versions of our flagship JavaScript framework — Ext JS 3.4, which brings IE9 support to Ext JS 3.x; and Ext JS 4.0.2, which contains a raft of performance and bug fixes, as well as some feature enhancements.

Download Ext JS 4.0.2 View Examples View Release Notes

Download Ext JS 3.4.0 View Examples View Release Notes

Ext JS 4.0.2 — Gray Theme, Performance Tuning, Over 200 Enhancements, and Bug Fixes

Gray Theme included with Ext JS 4.0.2 Ext JS 4.0.2 covers three main topics — performance tuning, bug fixes and the return of the Gray Theme. The popular Gray Theme from Ext JS 3.x has made its return and is now bundled in the SDK and the Theme Viewer example. This theme has been polished for 4.0 and works out of the box with all of our components.

As a patch release though, the main updates surround performance and bug fixes. For this release we’ve taken both of these extremely seriously, making 4.0.2 as strong a build as possible — both in terms of performance and in terms of stability. We also released a preview build of 4.0.2 on the forums — a first for patch releases — to enable the community to give feedback on the build.

Feedback from the community on the preview build has been very positive so far. We’re hearing that performance now exceeds expectations in common customer setups like deeply nested layouts and large forms. In total, we are shipping over 200 performance and bug fixes in 4.0.2.

Grid Performance & Rendering

Almost half of the improvements in this release have centered around grid — making it faster and more robust across all browsers. A number of forum members have been especially helpful in providing their experiences, ideas and frustrations with the new grid and we’re extremely grateful for their help. We were able to isolate a number of sections of code and optimize instances of slow grid performance. Both our own testing and reports from the forums show grids performing where we expect them across the full range of uses.

We’ve also devoted great attention to the rendering of the grids on each operating system and browser. With the virtualized scrolling introduced with the new infinite grid functionality, coaxing all of the supported browser combinations into being both beautiful and lightning fast was a very tall order. With the help of the forums and the community we believe we’ve managed to strike the right balance across all browsers in 4.0.2.

Nested Layouts

Nested Layouts in Ext JS 4.0.2 One of the instances that had been causing people some problems before 4.0.2 was deeply nested layouts — especially when using the auto sizing layouts (which are the default). These are a brand new capability in Ext JS 4 and go to great lengths to automatically size and position your components based on their “natural” size.

For example, using a grid inside a panel with an automatic layout would work out the grid’s full size once its rows have been loaded, and then size itself accordingly. Whenever the grid is updated or reloaded, its size automatically changes to this “natural” size. Our problem was that nesting several of these layouts inside one another led to a significant performance penalty, sometimes several times slower, as the code paths were not properly optimized for this.

Once we optimized how these layouts communicate with one another we were able to dramatically improve layout time. In a couple of deeply nested examples posted on the forums layout is now meeting our performance expectations.

Rendering Performance

Ext JS 4 features a brand new rendering pipeline that is significantly more structured and extensible than the rendering process in Ext JS 3. All Components now render the same way, and are driven by XTemplates. They also follow a common hook point regime, enabling the framework and developers to extend or hook into the render process for each Component.

While the new rendering architecture is a big step forward, it did create slow performance in some cases. In 4.0.1 and before the order of operations in the rendering process was not as efficient as it could have been, resulting in many more DOM updates than are actually needed. In 4.0.2 we have corrected this behavior, yielding significant render speed improvements.

We have already identified further optimizations to the rendering pipeline that will be incorporated into Ext JS 4.0.3 and beyond. Performance is very important to all of us and making the framework as fast as we know it can be will remain a top priority for the team.

General Improvements

All of the improvements made to Ext JS 4.0.2 are detailed in the 4.0.2 release notes. You can also find a full hosted set of examples that show off the framework and its new speed boost. In addition to all of the code improvements we’ve also been working hard on our documentation, with updates to the API documentation, guides and even the API browser itself.

Ext JS 3.4 — Support for IE9

Ext JS 3.4 adds IE9 support Today isn’t all about Ext JS 4 — we’re also releasing Ext JS 3.4, bringing full support for Internet Explorer 9. This update is recommended for all applications running on Ext JS 3.3 and is meant as a drop-in replacement for Ext JS 3.3.x. In addition to the brand new IE9 support, Ext JS 3.4 also brings a series of enhancements and bug fixes to your applications, as detailed in the 3.4.0 release notes.

Ext JS 4.0.x and Beyond

With 4.0.2 we feel confident that the performance and stability of Ext JS now meets the needs of even the more demanding uses. Thanks to our dedicated community, together we believe that we’ve ensured that Ext JS is optimized for real world applications. No software product is ever done and we plan to keep working on bug fixes and patches to Ext JS 4.0.x in the coming weeks and months. Those patch releases will be available to our support subscribers. Our next general release for non-support subscribers will be 4.1. There’s no hard date on 4.1 yet, but we’ll be discussing it more in the months leading up to SenchaCon 2011.

There are 25 responses. Add yours.

Thorsten Suckow-Homberg

12 months ago

Congrats on the new releases, Sencha Team. Looking forward to updating my vendor sources soon smile

Tyler

12 months ago

Thanks for the update.  Is it just me or is the grid scrolling a lot slower in this version?  Load the infinite grid example and click on an item, and then use your mouse’s scroll wheel to scroll through the list.  Then compare to 4.0.1.

Sebastien Tardif

12 months ago

http://www.sencha.com/products/extjs/ show that the SDK is still in Beta.

My understanding is that the SDK is needed to customize the styles, so how long this will stay in Beta?

Jamie Avins

12 months ago

@Tyler - The mouse wheel speed was tweaked in this release as it was not working well across different types of devices and operating systems.  This can be adjusted by changing the WHEEL_SCALE variable http://docs.sencha.com/ext-js/4-0/#/api/Ext.EventObject-property-WHEEL_SCALE

Grgur

12 months ago

All I want to say is that I enjoy being a support subscriber wink

Ken

12 months ago

3.4 gpl version?

Tyler

12 months ago

@Jamie Avins—thanks much!!

Nikolai Babinski

12 months ago

awesome, thanks guys

Alexander Hartmaier

12 months ago

I wonder where I can download 3.4.0 as a commercial customer.
The download link above wants an email address for commercial evaluation.

Salarmehr

12 months ago

Thank for this release.
But what about RTL support? ,promised feature ............. :-(

Salarmehr

12 months ago

There is an critical need for a complete MVC application.

Tim

12 months ago

@Ken - website has both 3.4 gpl and commercial d/l links now.

AwesomeBob

12 months ago

YAY FOR THIS:
“Add support to insertHTML method to prevent createContextualFragment errors with IE9”
!!!

Isaac

11 months ago

Thanks for the update. Kudos to the Sencha dev team for all your hard work!

ExtJS 4 is generally awesome, but one big disappointment is the module loading system. Sencha had a chance to do it right and got close, but unfortunately it is fundamentally broken. Why is that ?

ExtJS tightly couples modules implementations to the tradition of global namespaces. A module loader should enable a developer to avoid globals entirely, and name the reference to an implementation whatever they like. This enables using two different versions of a module simultaneously on the same page amoung other benefits.

The second major flaw is the lack of any closure wrapper around modules. Closures allow deferred execution and the the ability to return the implementation object as an “export”.

Lastly there are multiple ways to do the same thing resulting in a dependency system that is too complex and not deterministic enough. For example this makes using a non-Sencha build tool for concatenating JS a very complicated task. Its so complicated that even Sencha’s own SDK loads the whole application into runtime and gets the list of files to build in the correct order from an array! Nearly every other implementation I know of can do this statically without having to load the JS into runtime.

If something like the CommonJS async module specification was followed, or even just considered, none of the above points would have been an issue.

Alex

11 months ago

—“With 4.0.2 we feel confident that the performance and stability of Ext JS now meets the needs of even the more demanding uses”

That’s marketing bul***t. There are still waaaaay too many bugs.

—“Thanks to our dedicated community”

Once again, you’re openly scr**ing people up. They’re helping you ironing out tons of bugs and you’re actually thanking them by not providing any more updates to the community version. For 6 months they kept helping you and in return say no more updates and leave them with a still broken version…

Having customers pay for commercial use is perfectly fair but what you’re doing now is simply dirty and I honestly don’t understand why you’re doing it. Why won’t you keep the community version up to date as well?

Shame Sencha, shame on you! You’ve already done it too many times, now you’re doing it again and unfortunately some investors started to realize what’s happening…

CG

11 months ago

Fully Agree with Alex’ comment.
Sencha is taking the risk of cutting itself from one of its biggest asset: the community who devotes time (and yes, sometimes even efforts) to try polish and stabilize a version that has still a long way to go before “meeting the needs of even the more demanding uses”.

James Pearce

11 months ago

@alex & @cg I’m sorry for your frustrations. I’ve contacted you separately, and please feel free to let me know any specific concerns you have so we can address them. Thanks.

Alex

11 months ago

@James: What I’ve wrote above concerns the whole community and I know for a fact that a lot of developers that devoted lots of time helping Sencha ironing out tons of bugs feel the same frustrations. Will you try to contact all of us ‘separately’, or just the ones that find the time to express these frustrations in an inconveniently loud voice?

This may be the ‘politically correct’ thing to do but make no mistake, CG is right: you’re cutting yourself from the community, now more than ever. Under the circumstances, trying to contact us separately sends the same message, you’re not willing to speak openly to the community that helped and still helps you for now… except for telling marketing lies like ‘meeting the needs of even the more demanding uses’.

You know very well that ExtJS 4 performance and stability are far from satisfactory; the documentation is still incomplete; if you care for specifics, just have a look on the forums. All in all, it’s still a transitory version that needs lots of polish and improvements.

Yes, we understand Sencha needs the licensing fees to develop/survive and is entitled to ask money from customers that make money by using its products. But the truth you seem to ignore is that lost of us are technology enthusiasts and are not always making money out of it. I’ve seen lots of not-for-profit projects using ExtJS and I know some of the most valuable community members were involved in those. And now what you’re telling us is, ‘ok, you’ve helped us build the product, thanks for your time, but you can’t use the last version unless you pay for it’.

So if you (or anyone from Sencha) has something to say on the subject, say it here and openly, or don’t say it at all. Trying to contact us separately is beside the point and once more sends the wrong message. Or better yet, do the right thing, apply the same update policy to both the commercial and the community version. I have no doubt the developers using ExtJS commercially will still pay you for it, and you’ll also keep a dedicated community.

James Pearce

11 months ago

@Alex, I wanted to let you know that you can always contact us directly as well. We’re more than happy to handle the challenges head-on and discuss these topics in public - I just wasn’t sure that the comment thread of a specific blog post was the right place to talk about your broader concerns. Yes, I know there are similar forum discussions too - and we are tracking (and working on) a number of particular issues and areas for improvement.

We are extremely keen to address these issues both systemically and systematically. As much input (like this) that we can gather the better - and we constantly strive to do better.

In public and in private, I certainly don’t want you to think we aren’t listening!

Sebastien Tardif

11 months ago

4.0.2a is now accessible to anyone. It’s not clear what have been done, since the readme is still about 4.0.2 (without the a).

Les

11 months ago

>>> 4.0.2a is now accessible to anyone. It’s not clear what have been done…

4.0.2a has more layout bug fixes.

David Gwyer

11 months ago

As a newcomer to Ext JS I find it pretty frustrating at the lack of documentation/tutorials for version 4.x specifically targeted at new developers. I really want to start using the framework but am finding it a little difficult finding an easy way in!

I haven’t time to trawl through the API docs to figure it all out. Some simple beginner docs (that cover the LATEST version) would be so welcomed.

LoreZyra

11 months ago

@David Gwyer:
I would recommend picking up EXTjs In Action by Jay Garcia if you need an beginner-to-Intermediate course on digging into EXTjs.

http://extjsinaction.com/

P.S. I bought the book and very happy with the way it was presented. It even helped an intermediate programmer such as myself pickup a couple new tricks!

David Gwyer

11 months ago

I don’t really want to invest a lot of time and effort learning about Ext JS 3. I want to start with version 4. Currently, there are no books out there that deal with the latest version.

No matter how good the book is, what is the point of learning an obsolete version? I gather version 4 is such a massive change from version 3 there would be quite a learning curve between the two.

LASIK Dallas

8 months ago

I personally preffer last version, but everyone has his own opinion I guess… It was easier for me, and is really hard for me adapting changes.

Comments are Gravatar enabled. Your email address will not be shown.

Commenting is not available in this channel entry.