View Full Version : Upgrade big app Ext 3.3 to Ext 4.1.3 : BufferView

19 Nov 2012, 2:51 AM

I have a big application based on Ext 3.3.0.
I would like to upgrade my application to Ext 4.1.3.
In project mode, I've a plan migration with only modify js files (server calls and data are ok).

My application use a lot of grid. I use by choice in all my grids :

loading of all data (maximum of 9000 rows and 15 columns)
local sort on all columns
local filters on all columns
local grouping on some columns
CheckboxSelectionModel in some grid
Editable rows in some grid
Editable cells in some grid
Tbar :

reload button to reload all data of grid
total lines number

Bbar : total selected lines number

For perfomance, i used BufferView (Ext 3) and that's very good (about 6s for the largest to load 9000 lines, with a serveur call of 2.5s).
My data are called to many PHP scripts which are relatively complex in SQL and data processing, but simple to manage : all data are sent to ExtJs (Json), and Ext manage himself sorting, filtering, grouping ... etc !

To load all data composants in ExtJS, i always use an Ext.ajax method. With callback and for all my composants (combo, grid, tree, form ...) i've only one return type. I can manage response, eventually errors or warnings, show server message to the console ... before manually load my composants (on grid, with store.loadData).

During upgrade, I have problem that I did not know to resolve : use of BufferView in Ext 3.3 to ???? in Ext 4.1.3.

I tried a lot af things, and search in doc, forum ... etc !
I tried :

With a simple grid, but performance are very poor compared to BufferView in old version :

loading grid with 3300 rows take 5s (less than 1s with older and BufferView) with same call serveur of 240ms,
sorting a column take 4s (it's immediate with older and BufferView)

I try buffered scrolling, but we can' activate local sort and filter, is it correct ?
I see that store.loadData or loadRawData doesn't work with buffered store (use of this method don't cache data). Is it correct ?
I try infinite grid, we can't activate local sort and filter, is it correct ?

I would like to conserv my PHP files and no use remote sorting and filtering ... in my case :

it's not suitable : in dashboard, some grids are complex and serveur query and code processing take about 10 seconds, so sorting or filtering can only be applied after processing => remote filter would take always 10 seconds so local filter is more suitable,
it's too complex to do now in server code, and i've no time for this in my migration plan.

And most important, i would like to conserv all features that my users had in my application (no regression) !

So, i need help please :

Can i've the BufferView fonctionnality (or same) in Ext 4.1.3 ?
What solution do you advise to me ?

Naturally i could send you screenchots, code ... tell me if it's necessary.

Best regards.

21 Nov 2012, 9:32 AM
To do filter, you would have to iterate through the page maps and have some sort of snapshot of it so you can inject the records back into the store. You also would have to adjust the total number of records.

27 Nov 2012, 6:04 AM
Hi mitchellsimoens,

Thank you for your answer. I could see direction you show me, but it's not very clear for me.
Could you send me a piece of code to illustrate your answer ?

Best regards.

16 Jan 2013, 2:28 AM
Ext 4.2 beta resolve problem with use of bufferedrenderer plugin.